关于minigui的皮肤窗口

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;

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值