硬汉嵌入式论坛

 找回密码
 立即注册
查看: 5041|回复: 9
收起左侧

[μCGUI] 为什么我只能创建4个按钮,硬汉哥求解

[复制链接]

14

主题

34

回帖

14

积分

新手上路

积分
14
发表于 2014-8-28 11:35:15 | 显示全部楼层 |阅读模式
如下:
switch (pMsg->MsgId)
{ case WM_CREATE:
    WM_SetFocus(hWin); //Õâ¸ö±íʾ¾Û½¹µ½µ±Ç°´°¿Ú
    break;
  case WM_PAINT:
   hButton= _CreateButton(hWin, "", GUI_ID_BUTTON0, 5+0*dx, 5, 50,30 , 0);
   BUTTON_SetBMPEx(hButton,0,&bmqq,0,0);
   hButton= _CreateButton(hWin, "", GUI_ID_BUTTON1, 5+1*dx, 5, 50,30 , 0);
   BUTTON_SetBMPEx(hButton,0,&bmqq,0,0);
   hButton= _CreateButton(hWin, "", GUI_ID_BUTTON2, 5+2*dx, 5, 50,30 , 0);
   BUTTON_SetBMPEx(hButton,0,&bmqq,0,0);
   hButton= _CreateButton(hWin, "", GUI_ID_BUTTON3, 5+3*dx, 5, 50,30 , 0);
   BUTTON_SetBMPEx(hButton,0,&bmqq,0,0);
   
   hButton= _CreateButton(hWin, "", GUI_ID_BUTTON4, 5+0*dx, 5+1*dy, 50,30 , 0);
   BUTTON_SetBMPEx(hButton,0,&bmqq,0,0);
   hButton= _CreateButton(hWin, "", GUI_ID_BUTTON5, 5+1*dx, 5+1*dy, 50,30 , 0);
   BUTTON_SetBMPEx(hButton,0,&bmqq,0,0);
   hButton= _CreateButton(hWin, "", GUI_ID_BUTTON6, 5+2*dx, 5+1*dy, 50,30 , 0);
   BUTTON_SetBMPEx(hButton,0,&bmqq,0,0);
   hButton= _CreateButton(hWin, "", GUI_ID_BUTTON7, 5+3*dx, 5+1*dy, 50,30 , 0);
   BUTTON_SetBMPEx(hButton,0,&bmqq,0,0);
      
    hButton= _CreateButton(hWin, "", GUI_ID_BUTTON8, 5+0*dx, 5+2*dy, 50,30 , 0);
   BUTTON_SetBMPEx(hButton,0,&bmqq,0,0);
   hButton= _CreateButton(hWin, "", GUI_ID_BUTTON9, 5+1*dx, 5+2*dy, 50,30 , 0);
   BUTTON_SetBMPEx(hButton,0,&bmqq,0,0);
   
   break;
  default:
  WM_DefaultProc(pMsg);       //ĬÈÏ´¦Àí
  
}
}

这个程序只能创建4个按钮,不知什么问题,
回复

使用道具 举报

14

主题

34

回帖

14

积分

新手上路

积分
14
 楼主| 发表于 2014-8-28 11:36:54 | 显示全部楼层
还有不知道为什么按钮上的图片也不显示?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107101
QQ
发表于 2014-8-28 13:47:38 | 显示全部楼层
创建的位置错了,建议放在 WM_CREATE:上创建
回复

使用道具 举报

14

主题

34

回帖

14

积分

新手上路

积分
14
 楼主| 发表于 2014-8-28 14:30:42 | 显示全部楼层

回 eric2013 的帖子

eric2013:创建的位置错了,建议放在 WM_CREATE:上创建 (2014-08-28 13:47)
我换了下位置,可以了,可是背景好像也被创建了按钮,还是很密密麻麻的那种,不知为什么?请教:
程序如下:
static void _Init_cb_first(WM_MESSAGE* pMsg)
{
    u8 dx=85,dy=65;
  WM_HWIN hButton;
    WM_HWIN hWin = pMsg->hWin; //»ñÈ¡Ô´Îļþ
  switch (pMsg->MsgId)
    {
        case WM_CREATE:
        WM_SetFocus(hWin); //Õâ¸ö±íʾ¾Û½¹µ½µ±Ç°´°¿Ú
         hButton= _CreateButton(hWin, "", GUI_ID_BUTTON0, 5+0*dx, 5, 70,60 , 0);
        BUTTON_SetBitmap(hButton,0,&bmqq);
        hButton= _CreateButton(hWin, "", GUI_ID_BUTTON1, 5+1*dx, 5, 70,60 , 0);
        BUTTON_SetBitmap(hButton,0,&bmLOL);
        hButton= _CreateButton(hWin, "", GUI_ID_BUTTON2, 5+2*dx, 5, 70,60 , 0);
        BUTTON_SetBitmap(hButton,0,&bmpicture);
        
        hButton= _CreateButton(hWin, "", GUI_ID_BUTTON3, 5+0*dx, 5+1*dy, 70,60 , 0);
        BUTTON_SetBitmap(hButton,0,&bmPEOPLE);
        hButton= _CreateButton(hWin, "", GUI_ID_BUTTON4, 5+1*dx, 5+1*dy, 70,60 , 0);
        BUTTON_SetBitmap(hButton,0,&bmMP3);
        hButton= _CreateButton(hWin, "", GUI_ID_BUTTON5, 5+2*dx, 5+1*dy, 70,60 , 0);
        BUTTON_SetBitmap(hButton,0,&bmATM);
        
        hButton= _CreateButton(hWin, "", GUI_ID_BUTTON6, 5+0*dx, 5+2*dy, 70,60 , 0);
        BUTTON_SetBitmap(hButton,0,&bmrong);
        hButton= _CreateButton(hWin, "", GUI_ID_BUTTON7, 5+1*dx, 5+2*dy, 70,60 , 0);
        BUTTON_SetBitmap(hButton,0,&bmqq);   
      
        hButton= _CreateButton(hWin, "", GUI_ID_BUTTON8, 5+2*dx, 5+2*dy, 70,60 , 0);
        BUTTON_SetBitmap(hButton,0,&bmqq);
    break;
        case WM_PAINT:
            
        //hButton= _CreateButton(hWin, "", GUI_ID_BUTTON9, 5+1*dx, 5+2*dy, 50,30 , 0);
        //BUTTON_SetBitmap(hButton,0,&bmqq);
      
      break;
        default:
        WM_DefaultProc(pMsg);       //ĬÈÏ´¦Àí
     
}
}
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107101
QQ
发表于 2014-8-28 14:41:42 | 显示全部楼层
背景要做重绘的,比如我们重绘成黑色。
WM_PAINT:
    GUI_SetBkColor(GUI_BLACK);
    GUI_Clear();
    break;
回复

使用道具 举报

14

主题

34

回帖

14

积分

新手上路

积分
14
 楼主| 发表于 2014-8-28 14:42:13 | 显示全部楼层

回 eric2013 的帖子

eric2013:创建的位置错了,建议放在 WM_CREATE:上创建 (2014-08-28 13:47)
模拟器上没有这种情况,板子上又,什么问题
回复

使用道具 举报

14

主题

34

回帖

14

积分

新手上路

积分
14
 楼主| 发表于 2014-8-28 14:44:36 | 显示全部楼层

回 eric2013 的帖子

eric2013:背景要做重绘的,比如我们重绘成黑色。
WM_PAINT:
    GUI_SetBkColor(GUI_BLACK);
    GUI_Clear();
    break; (2014-08-28 14:41)
我是这样的:void Init_DeskTop()
{

WM_SetCreateFlags(WM_CF_MEMDEV); //ʹÓô洢É豸
WM_SetCallback(WM_HBKWIN, &_Init_cbBkWindow);//ÉèÖñ³¾°»Øµ÷º¯Êý
_CreateFrame(&_Init_cb_first);  //µÚÒ»¸ö´°¿Ú
}
和你之前的一样
回复

使用道具 举报

14

主题

34

回帖

14

积分

新手上路

积分
14
 楼主| 发表于 2014-8-28 14:47:34 | 显示全部楼层

回 1756143812 的帖子

1756143812:我是这样的:void Init_DeskTop()
{

WM_SetCreateFlags(WM_CF_MEMDEV); //ʹÓô洢É豸
....... (2014-08-28 14:44)
我就是在背景窗口上再创建一个子窗口,再在子窗口上创建按钮的
回复

使用道具 举报

14

主题

34

回帖

14

积分

新手上路

积分
14
 楼主| 发表于 2014-8-28 15:08:23 | 显示全部楼层

回 eric2013 的帖子

eric2013:背景要做重绘的,比如我们重绘成黑色。
WM_PAINT:
    GUI_SetBkColor(GUI_BLACK);
    GUI_Clear();
    break; (2014-08-28 14:41)
谢谢,搞定了,就是背景窗口的重绘问题,在这里提醒大家一下:窗口和窗口之间的背景回调是不一样的,必须重新刷背景
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107101
QQ
发表于 2014-8-28 15:35:45 | 显示全部楼层

回 1756143812 的帖子

1756143812:谢谢,搞定了,就是背景窗口的重绘问题,在这里提醒大家一下:窗口和窗口之间的背景回调是不一样的,必须重新刷背景 (2014-08-28 15:08) 
是这样的
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-18 01:14 , Processed in 0.251467 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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