LZW520 发表于 2012-11-4 16:51:28

怎么用GUI建立一个简单的窗口????????????

成功移植GUI已有四五天了,想学GUI中的窗口的管理,但是到目前为止,我表示连一个窗口都建立不起来,这个函数WM_CreateWindow()用了没反应,求大家指点怎么建立起一个简单的窗口?求源代码。谢谢!

wxfje 发表于 2012-11-4 17:30:08

有例子吧!ucgui有不少例子的,看一下就知道了

mcu5i51 发表于 2012-11-4 20:00:36

uCGUIBulider4.0 挺好用的小工具,可以再PC环境下设计界面,不过Win7 64Bit中有问题,其他windows还行

LZW520 发表于 2012-11-4 22:31:50

wxfje 发表于 2012-11-4 17:30 static/image/common/back.gif
有例子吧!ucgui有不少例子的,看一下就知道了

很多例子都是在模拟器上运行的程序,不能直接在我的板子上运行,没多大价值。

lcw_swust 发表于 2012-11-5 09:48:31

楼主把程序贴上来看看

LZW520 发表于 2012-11-18 21:58:21

lcw_swust 发表于 2012-11-5 09:48 static/image/common/back.gif
楼主把程序贴上来看看

建立一个窗口的问题已经解决了,但是现在又出现了新的问题,最多只能建立一个窗口(建立两个窗口只能显示一个),这是怎么回事?
static void Window1(WM_MESSAGE* pMsg)
{
GUI_RECT Rect;
int x,y;
switch(pMsg->MsgId)
{
case WM_PAINT:
    WM_GetInsideRect(&Rect);
    GUI_SetBkColor(GUI_RED);
    GUI_SetColor(GUI_YELLOW);
    GUI_ClearRectEx(&Rect);
    GUI_DrawRectEx(&Rect);
    GUI_SetColor(GUI_WHITE);
    GUI_SetFont(&GUI_Font24_ASCII);
    x=WM_GetWindowSizeX(pMsg->hWin);
    y=WM_GetWindowSizeY(pMsg->hWin);
    GUI_DispStringHCenterAt("Micrium",x/2,(y/2)-12);
    break;
default:
    WM_DefaultProc(pMsg);//要处理WM_GetInsideRect发过来的消息
   
}
}

static void cbChild(WM_MESSAGE* pMsg)
{
int x,y;
GUI_RECT Rect;
switch(pMsg->MsgId)
{
    GUI_SetBkColor(GUI_WHITE);
    WM_GetInsideRect(&Rect);
    GUI_SetBkColor(GUI_RED);
    GUI_SetColor(GUI_YELLOW);
    GUI_ClearRectEx(&Rect);
    GUI_DrawRectEx(&Rect);
//    GUI_Clear();
    GUI_SetColor(GUI_RED);
    GUI_SetFont(&GUI_Font24_ASCII);
    x=WM_GetWindowSizeX(pMsg->hWin);
    y=WM_GetWindowSizeY(pMsg->hWin);
    GUI_DispStringHCenterAt("Micrium",x/2,(y/2)-12);
    break;
default:
    WM_DefaultProc(pMsg);   
}
}

void main(void)
{
WM_HWIN hWindow1,hChild;
//BUTTON_Handle hProgBar;
InitClock();
GUI_Init();

GUI_CLR_Screen(0xE1FA);
hWindow1=WM_CreateWindow(50,70,165,100,WM_CF_SHOW|WM_CF_MEMDEV,Window1,0);
GUI_Delay(1000/3);
hChild=WM_CreateWindow(10,50,145,40,WM_CF_SHOW|WM_CF_MEMDEV,cbChild,0);
GUI_Delay(1000);
GUI_MessageBox("love\nyou","Caption/Title",GUI_MESSAGEBOX_CF_MOVEABLE);

while(1)
{
//   WM_Paint(hWin2);
    WM_Exec();

}
}

lcw_swust 发表于 2012-11-18 23:15:50

LZW520 发表于 2012-11-18 21:58 static/image/common/back.gif
建立一个窗口的问题已经解决了,但是现在又出现了新的问题,最多只能建立一个窗口(建立两个窗口只能显示 ...

WM_Exec里是什么?
页: [1]
查看完整版本: 怎么用GUI建立一个简单的窗口????????????