1.皮肤的构成
MiniGUI 中的皮肤界面主要由包含在皮肤窗口中的皮肤主界面和各种皮肤元素组成。皮
肤窗口是皮肤所依附的窗口,皮肤必须依附在某个窗口上才能显示出来。皮肤主界面又是皮
肤元素的依附所在。而皮肤元素是指构成皮肤界面的各种界面元素,包括按钮(button)、标
签(label)和滑条(slider)等,当然,它们基本上都是用图片来显示的。
2.基本框架
(1)头文件
/*在使用minigui时,所必须的头文件*/
#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 <sys/stat.h>
#include <sys/time.h>
#include <sys/types.h>
#include <unistd.h>
#include <pwd.h>
#include <stdarg.h>
#include <errno.h>
/*使用皮肤窗口要到的头文件*/
#include <minigui/skin.h>
(2)定义控件ID
(3)定义minigui控件
static CTRLDATA CtrlMyDate[] ={};
(4)定义皮肤元素数组
static skin_item_t skin_main_items [] ={};
要想在皮肤窗口下使用minigui普通控件,其风格为 SI_TYPE_CONTROL
(5)定义皮肤
skin_head_t main_skin =
{
"播放器",
SKIN_STYLE_TOOLTIP,
NULL, NULL,
0, 11, skin_main_items, FALSE
};
(6)位图数组
(7)皮肤事件回调函数
(8)皮肤窗口消息回调函数
(9)入口函数
int MiniGUIMain (int argc, const char *argv[])
{
MSG msg;
HWND hWndMain;
#ifdef _LITE_VERSION
SetDesktopRect( 0, 0, 640, 480 );
#endif
if (!InitMiniGUIExt()) {
return 2;
}
load_skin_bmps (&main_skin, TRUE); /* 装载位图资源 */
if ( !skin_init (&main_skin, main_event_cb, msg_event_cb) ){ /* 初始化皮肤 */
printf ("skin init fail !/n");
}
else{
hWndMain = create_skin_main_window (&main_skin,
HWND_DESKTOP, 20, 20, 260, 340,
FALSE);
hWndMain_Record=hWndMain;
while (GetMessage (&msg, hWndMain)) {
TranslateMessage (&msg);
DispatchMessage (&msg);
}
MainWindowCleanup (hWndMain);
skin_deinit (&main_skin); /* 撤销皮肤 */
}
load_skin_bmps (&main_skin, FALSE); /* 卸载位图资源 */
MiniGUIExtCleanUp ();
return 0;
}