野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 11605|回复: 2

在enWin窗口中添加按键

[复制链接]
发表于 2015-4-8 15:33:23 | 显示全部楼层 |阅读模式
火哥,不好意思,还要打搅你,我在装载了uCOS-III系统使用emWin先创建一个窗口(是使用WM_CreateWindowAsChild()创建的),然后再向这窗口中添加四个按键,为什么按键显示不出来的呢????代码如下,请问是什么问题呢???谢谢!
        BUTTON_SetDefaultSkin(BUTTON_SKIN_FLEX);
        Buttom_Status = WM_CreateWindowAsChild(
                                                                                        0,                                //窗口位置、大小
                                                                                        200,
                                                                                        320,
                                                                                        40,       
                                                                                        WM_HBKWIN,  |WM_CF_SHOW|WM_CF_FGND, _cbStatusWin, 0
                                                                                        );


        hButton = BUTTON_CreateEx(0, 200, 80, 40, Buttom_Status, WM_CF_SHOW,0,GUI_ID_BUTTON0);
        BUTTON_SetText(hButton,"Machine");                                               

        hButton_1 = BUTTON_CreateEx(80, 200, 80, 40, Buttom_Status, WM_CF_SHOW,0,GUI_ID_BUTTON1);
        BUTTON_SetText(hButton_1, "Relative");

        hButton_2 = BUTTON_CreateEx(160, 200, 80, 40, Buttom_Status, WM_CF_SHOW,0,GUI_ID_BUTTON2);
        BUTTON_SetText(hButton_2, "Absolute");

        hButton_3 = BUTTON_CreateEx(240, 200, 80, 40, Buttom_Status, WM_CF_SHOW,0,GUI_ID_BUTTON3);
        BUTTON_SetText(hButton_3, "Setup");

回复

使用道具 举报

 楼主| 发表于 2015-4-9 12:16:09 | 显示全部楼层
火哥,我用emWin在窗口装按键的显示问题弄了很久都无法显示,请问是不是有什么设置的???我的另一个代码如下,麻烦火哥能在百忙之中给点提醒啊,谢谢了!!!
static const GUI_WIDGET_CREATE_INFO _aDialogCreate[] = {
    { FRAMEWIN_CreateIndirect,  "armfly",            0,                       0,  160,  320,80,FRAMEWIN_CF_MOVEABLE,0},
    { BUTTON_CreateIndirect,    "BUTTON0",           GUI_ID_BUTTON0,          20, 200,80,40, 0,0},
    { BUTTON_CreateIndirect,    "BUTTON1",           GUI_ID_BUTTON1,          120,200,80,40, 0,0}
};


void PaintDialog(WM_MESSAGE * pMsg)
{
    WM_HWIN hWin = pMsg->hWin;
        GUI_SetBkColor(GUI_RED);
        GUI_Clear();
}

//回调函数
void _cbCallback(WM_MESSAGE * pMsg)
{
    int NCode, Id;
    WM_HWIN hWin = pMsg->hWin;
    switch (pMsg->MsgId)
    {
        case WM_PAINT:
            PaintDialog(pMsg);
            break;

        case WM_KEY:
            switch (((WM_KEY_INFO*)(pMsg->Data.p))->Key)
            {
                case GUI_KEY_ESCAPE:
                    GUI_EndDialog(hWin, 1);
                    break;
                case GUI_KEY_ENTER:
                    GUI_EndDialog(hWin, 0);
                    break;
            }
            break;
        default:
            WM_DefaultProc(pMsg);
    }
}

void Set_Background(void)           
{

        WM_SetDesktopColor(GUI_RED);      /* Automacally update desktop window */
            WM_SetCreateFlags(WM_CF_MEMDEV);
        WM_EnableMemdev(WM_HBKWIN);       

//开始创建窗口函数(用于包含两个按键)
        GUI_ExecDialogBox(_aDialogCreate, GUI_COUNTOF(_aDialogCreate), &_cbCallback, 0, 0, 0);

}
拜托了,万分感谢!!!


回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-4-9 15:55:11 | 显示全部楼层
问题解决了,其实,是关于坐标问题,当小部件放到新建的窗口时,坐标是依据新窗口而言的。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-9-21 05:38 , Processed in 0.028658 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表