📄 skin.c
字号:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <minigui/common.h>
#include <minigui/minigui.h>
#include <minigui/gdi.h>
#include <minigui/window.h>
#include <minigui/control.h>
#include <minigui/mgext.h>
#include <minigui/skin.h>
#include "project.h"
#include "time.h"
#define SIID_CARTOON 222
#define SIID_TIMER 199
#define SIID_TITLE 200
#define SIID_PHONE 201
#define SIID_MAIL 202
#define SIID_WEB 203
#define SIID_MP3 204
#define SIID_SMS 211
#define SIID_NUMBER 212
#define SIID_CALENDAR 213
#define SIID_GAMES 214
#define SIID_CALC 215
#define SIID_NOTES 216
#define SIID_CLOCK 217
#define SIID_DIANCHI 223
#define SIID_XINHAO 224
#define SIID_CLOSE 207
#define SIID_LABLE1 101
#define SIID_LABLE2 102
#define SIID_LABLE3 103
#define SIID_LABLE11 111
#define SIID_LABLE12 112
#define SIID_LABLE13 113
#define SIID_LABLE14 114
#define SIID_LABLE15 115
#define SIID_LABLE16 116
#define SIID_LABLE17 117
#define DEF_WIDTH 320
#define DEF_HEIGHT 240
static si_bmplabel_t timer = { "00:00", "0123456789:-" };
static si_bmplabel_t xinhao = { "", "1234" };
static si_bmplabel_t dianchi = { "", "1234" };
static si_bmplabel_t cartoon = { "", "0123456789:" };
HWND htnd;
static BOOL STOP;
static char timestring[28] = {'\0'};
static int cos=0;
static BITMAP bmp;
/* 定义皮肤元素数组 */
static skin_item_t skin_main_items [] =
{
{SIID_PHONE, SI_TYPE_CHKBUTTON | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,
16, 166, {}, 1, ""},
{SIID_MAIL, SI_TYPE_CHKBUTTON | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,
66, 165, {}, 2, ""},
{SIID_MP3, SI_TYPE_CHKBUTTON | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,
116, 165, {}, 3, ""},
{SIID_SMS, SI_TYPE_CHKBUTTON | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,
16, 35, {}, 4, ""},
{SIID_NUMBER, SI_TYPE_CHKBUTTON | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,
66, 35, {}, 5, ""},
{SIID_CALENDAR, SI_TYPE_CHKBUTTON | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,
116, 35, {}, 6, ""},
{SIID_GAMES, SI_TYPE_CHKBUTTON | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,
164, 35, {}, 7, ""},
{SIID_CALC, SI_TYPE_CHKBUTTON | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,
16, 95, {}, 8, ""},
{SIID_NOTES, SI_TYPE_CHKBUTTON | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,
66, 97, {}, 9, ""},
{SIID_CLOSE, SI_TYPE_CHKBUTTON | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,
245, 190, {}, 10, ""},
{SIID_LABLE1, SI_TYPE_CHKBUTTON | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,
18, 202, {}, 11, ""},
{SIID_LABLE2, SI_TYPE_CHKBUTTON | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,
66, 202, {}, 12, ""},
{SIID_LABLE3, SI_TYPE_CHKBUTTON | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,
116, 202, {}, 13, ""},
{SIID_LABLE11, SI_TYPE_CHKBUTTON | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,
18, 70, {}, 14, ""},
{SIID_LABLE12, SI_TYPE_CHKBUTTON | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,
66, 70, {}, 15, ""},
{SIID_LABLE13, SI_TYPE_CHKBUTTON | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,
114, 72, {}, 16, ""},
{SIID_LABLE14, SI_TYPE_CHKBUTTON | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,
170, 73, {}, 17, ""},
{SIID_LABLE15, SI_TYPE_CHKBUTTON | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,
20, 135, {}, 18, ""},
{SIID_LABLE16, SI_TYPE_CHKBUTTON | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,
68, 135, {}, 19, ""},
{SIID_XINHAO, SI_TYPE_BMPLABEL | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,
5,5, {}, 20, "",0,&xinhao},
{SIID_DIANCHI, SI_TYPE_BMPLABEL | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,
280,5, {}, 21, "",0,&dianchi},
{SIID_CLOCK, SI_TYPE_CHKBUTTON | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,
214, 35, {}, 22, ""},
{SIID_LABLE17, SI_TYPE_CHKBUTTON | SI_TEST_SHAPE_RECT | SI_STATUS_VISIBLE,
216, 74, {}, 23, ""},
};
/* 定义皮肤 */
skin_head_t main_skin =
{
"",
SKIN_STYLE_TOOLTIP,NULL, NULL,
0, 23, skin_main_items, FALSE
};
/* 位图数组 */
const char *bmp_name[] = {
"./res/main.jpg", "./res/phone.jpg", "./res/mail.jpg","./res/mp3.jpg", "./res/sms.jpg","./res/number.jpg","./res/calendar.jpg","./res/game.jpg",
"./res/calc.jpg","./res/note.jpg","./res/close.jpg","./res/1.jpg","./res/2.jpg","./res/3.jpg","./res/11.jpg","./res/12.jpg","./res/13.jpg",
"./res/14.jpg","./res/15.jpg","./res/16.jpg","./res/xinhao.jpg","./res/dianchi.jpg","./res/clock.jpg","./res/17.jpg"
};
/* 位图资源装/卸载函数 */
void load_skin_bmps ( skin_head_t *skin, BOOL load )
{
int i, bmp_num = sizeof(bmp_name)/sizeof(char *);
/* 如果load为真,则将位图装载到skin的bmps数组,否则卸载bmps数组中的位图 */
if ( load )
skin->bmps = (BITMAP* )calloc ( bmp_num, sizeof(BITMAP) );
for ( i = 0 ; i < bmp_num ; i++ ){
if ( load )
LoadBitmapFromFile ( HDC_SCREEN, (PBITMAP)&(skin->bmps[i]), bmp_name[i] );
else
UnloadBitmap ((PBITMAP)&(skin->bmps[i]));
}
if ( !load )
free ( (void*)skin->bmps);
}
/* 皮肤事件回调函数 */
static int main_event_cb (HWND hwnd, skin_item_t* item, int event, void* data)
{
char buf[256];
static int click_num = 0;
int minute = 0;
int second = 0;
int pos = 0;
if (event == SIE_GAIN_FOCUS)
{ switch (item->id)
{
case SIID_PHONE:
break;
case SIID_MAIL:
break;
case SIID_SMS:
break;
case SIID_NUMBER:
break;
case SIID_CALENDAR:
break;
case SIID_GAMES:
break;
case SIID_CALC:
break;
case SIID_NOTES:
break;
}
}
else if (event == SIE_LOST_FOCUS)
{
switch (item->id)
{
case SIID_PHONE:
break;
case SIID_MAIL:
break;
case SIID_SMS:
break;
case SIID_NUMBER:
break;
case SIID_CALENDAR:
break;
case SIID_GAMES:
break;
case SIID_CALC:
break;
case SIID_NOTES:
break;
}
}
else if (event == SIE_BUTTON_CLICKED) {
switch (item->id) {
case SIID_PHONE: /* 皮肤元素SIID_PLAY的SIE_BUTTON_CLICKED事件在这里进行处理 */
skin_set_check_status (item->hostskin, SIID_PHONE,FALSE );
call(hwnd);
break;
case SIID_SMS:
skin_set_check_status (item->hostskin, SIID_SMS,FALSE );
EnableWindow(hwnd,0);
// sms(hwnd);
EnableWindow(hwnd,1);
break;
case SIID_CLOSE:
skin_set_check_status (item->hostskin, SIID_CLOSE,FALSE );
//SendMessage(TaskBarWindow,IDC_TASKBAR_CLOSEOUT,0,0L);
destroy_skin_window(hwnd);
// PostQuitMessage (hwnd);
break;
}
}
}
/* 皮肤窗口消息回调函数 */
static int msg_event_cb (HWND hwnd, int message, WPARAM wparam, LPARAM lparam, int* result)
{
skin_head_t *hostskin = NULL;
hostskin = get_window_skin (hwnd);
switch (message) {
case MSG_CREATE:
break;
case MSG_CLOSE:
return 0;
}
return MSG_CB_GOON;
}
int Skin()
{
MSG msg;
HWND hWndMain;
load_skin_bmps (&main_skin, TRUE); /* 装载位图资源 */
if(flag_skin==0)
{
skin_init (&main_skin, main_event_cb, msg_event_cb);
flag_skin=1;
}
{
hWndMain = create_skin_main_window (&main_skin,
HWND_DESKTOP, 0, 0,DEF_WIDTH, DEF_HEIGHT,
FALSE);
htnd=hWndMain;
while (GetMessage (&msg, hWndMain))
{
TranslateMessage (&msg);
DispatchMessage (&msg);
}
//MainWindowCleanup(hWndMain);
//skin_deinit (&main_skin); /* 撤销皮肤 */
}
load_skin_bmps (&main_skin, FALSE); /* 卸载位图资源 */
//MiniGUIExtCleanUp ();
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -