OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 8144|回复: 6

原子哥,大神们,ucgui问题,请关注,帮帮忙

[复制链接]

11

主题

36

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
229
金钱
229
注册时间
2012-11-16
在线时间
43 小时
发表于 2013-2-1 10:29:10 | 显示全部楼层 |阅读模式
这段时间移值ucgui做个项目,程序现在做了3个对话框,
1:




2:


3:


程序的流程是:第一个对话框的4个图标,按任何一个都会跳到第二个对话框,第二个对话框的next按钮按跳到第三个对话框,第三个对话框的Back按钮回到第二个对话框,Home按钮直接回到
第一个对话框。按钮的背景色是红色。
现在程序的问题是:能够正常跳转,但是当我不停地按按钮时,界面跳转了几圈之后,程序就停在第二个对话框了,按next按钮,程序不再跳转了,但程序没有死,next按钮还是会有红色的背景色,跟踪程序在
void OS_TaskIdle(void *p_arg)   不停循环 ,跳不出来了,但是触摸next按钮是有反应的,因为任有红色的背景色出来。

请大家帮帮忙看看是什么问题,谢谢大家,工程文件看附件。





复件 DS566_GUI.zip

2.42 MB, 下载次数: 350

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-2-1 10:30:46 | 显示全部楼层
ucgui我不熟,帮顶了.
希望高手帮忙看看了.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

11

主题

36

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
229
金钱
229
注册时间
2012-11-16
在线时间
43 小时
 楼主| 发表于 2013-2-1 10:46:31 | 显示全部楼层
现把程序的3个对话框的程序贴出来:
1:


#include <stddef.h>
#include "GUI.h"
#include "DIALOG.h"

#include "WM.h"
#include "BUTTON.h"
#include "CHECKBOX.h"
#include "DROPDOWN.h"
#include "EDIT.h"
#include "FRAMEWIN.h"
#include "LISTBOX.h"
#include "MULTIEDIT.h"
#include "RADIO.h"
#include "SLIDER.h"
#include "TEXT.h"
#include "ROGBAR.h"
#include "SCROLLBAR.h"
#include "LISTVIEW.h"




extern const GUI_BITMAP bmp1;  
extern const GUI_BITMAP bmp2;
extern const GUI_BITMAP bmp3;
extern const GUI_BITMAP bmp4;



//EventsFunctionList
void OnButtonReleased(WM_MESSAGE * pMsg);

//EndofEventsFunctionList

WM_HWIN mainhWin; 

/*********************************************************************
*
*       static data
*
**********************************************************************
*/



/*********************************************************************
*
*       Dialog resource
*
* This table conatins the info required to create the dialog.
* It has been created by ucGUIbuilder.
*/

static const GUI_WIDGET_CREATE_INFO _aDialogCreate1[] = { //FRAMEWIN_CF_MOVEABLE
    { FRAMEWIN_CreateIndirect,  "xDSL",              0,                       0,  0,  480,320,0,0},
    { BUTTON_CreateIndirect,     NULL,               GUI_ID_BUTTON0,          74, 6, 120,120,0,0},
    { BUTTON_CreateIndirect,     NULL,               GUI_ID_BUTTON1,          266,6, 120,120,0,0},
    { BUTTON_CreateIndirect,     NULL,               GUI_ID_BUTTON2,          74, 148,120,120,0,0},
    { BUTTON_CreateIndirect,     NULL,               GUI_ID_BUTTON3,          266,148,120,120,0,0},
    { TEXT_CreateIndirect,      "xDSL-test",         GUI_ID_TEXT0,            96, 129,79, 16, 0,0},
    { TEXT_CreateIndirect,      "Copper-test",       GUI_ID_TEXT1,            287,129,95, 16, 0,0},
    { TEXT_CreateIndirect,      "Optical-test",      GUI_ID_TEXT2,            94, 271,103,16, 0,0},
    { TEXT_CreateIndirect,      "System-set",        GUI_ID_TEXT3,            295,271,87, 16, 0,0}
};



/*****************************************************************
**      FunctionName:void aintDialog(WM_MESSAGE * pMsg)
**      Function: to initialize the Dialog items
**                                                      
**      call this function in _cbCallback --> WM_PAINT
*****************************************************************/

void aintDialog(WM_MESSAGE * pMsg)
{
    WM_HWIN hWin = pMsg->hWin;

}



/*****************************************************************
**      FunctionName:void InitDialog(WM_MESSAGE * pMsg)
**      Function: to initialize the Dialog items
**                                                      
**      call this function in _cbCallback --> WM_INIT_DIALOG
*****************************************************************/

void InitDialog(WM_MESSAGE * pMsg)
{
    WM_HWIN hWin = pMsg->hWin;
mainhWin = hWin ;   // 主父窗口
    //
    //FRAMEWIN
    //
    FRAMEWIN_SetClientColor(hWin,0xc0c0ff);
    FRAMEWIN_SetFont(hWin,&GUI_Font8x16);
    FRAMEWIN_SetTitleHeight(hWin,18);
    //
    //GUI_ID_BUTTON0
    //
    BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON0),BUTTON_CI_UNPRESSED,0xc0c0ff);
    BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON0),BUTTON_CI_PRESSED,0x0000ff);
BUTTON_SetBitmapEx(WM_GetDialogItem(hWin,GUI_ID_BUTTON0),0,&bmp1,3,3) ;
    //
    //GUI_ID_BUTTON1
    //
    BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON1),BUTTON_CI_UNPRESSED,0xc0c0ff);
    BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON1),BUTTON_CI_PRESSED,0x0000ff);
BUTTON_SetBitmapEx(WM_GetDialogItem(hWin,GUI_ID_BUTTON1),0,&bmp4,3,3) ;
    //
    //GUI_ID_BUTTON2
    //
    BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON2),BUTTON_CI_UNPRESSED,0xc0c0ff);
    BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON2),BUTTON_CI_PRESSED,0x0000ff);
BUTTON_SetBitmapEx(WM_GetDialogItem(hWin,GUI_ID_BUTTON2),0,&bmp3,3,3) ;
    //
    //GUI_ID_BUTTON3
    //
    BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON3),BUTTON_CI_UNPRESSED,0xc0c0ff);
    BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON3),BUTTON_CI_PRESSED,0x0000ff);
BUTTON_SetBitmapEx(WM_GetDialogItem(hWin,GUI_ID_BUTTON3),0,&bmp2,3,3) ;
    //
    //GUI_ID_TEXT0
    //
    TEXT_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_TEXT0),0xc0c0ff);
    TEXT_SetFont(WM_GetDialogItem(hWin,GUI_ID_TEXT0),&GUI_FontComic18B_ASCII);
    //
    //GUI_ID_TEXT1
    //
    TEXT_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_TEXT1),0xc0c0ff);
    TEXT_SetFont(WM_GetDialogItem(hWin,GUI_ID_TEXT1),&GUI_FontComic18B_ASCII);
    //
    //GUI_ID_TEXT2
    //
    TEXT_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_TEXT2),0xc0c0ff);
    TEXT_SetFont(WM_GetDialogItem(hWin,GUI_ID_TEXT2),&GUI_FontComic18B_ASCII);
    //
    //GUI_ID_TEXT3
    //
    TEXT_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_TEXT3),0xc0c0ff);
    TEXT_SetFont(WM_GetDialogItem(hWin,GUI_ID_TEXT3),&GUI_FontComic18B_ASCII);

}




/*********************************************************************
*
*       Dialog callback routine
*/
static void _cbCallback1(WM_MESSAGE * pMsg) 
{
    int NCode, Id;
    WM_HWIN hWin = pMsg->hWin;
    switch (pMsg->MsgId) 
    {
        case WM_PAINT:
            aintDialog(pMsg);
WM_ExecIdle();
            break;
        case WM_INIT_DIALOG:
            InitDialog(pMsg);
WM_ExecIdle();
            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;
        case WM_NOTIFY_PARENT:
            Id = WM_GetId(pMsg->hWinSrc); 
            NCode = pMsg->Data.v;        
            switch (Id) 
            {
                case GUI_ID_OK:
                    if(NCode==WM_NOTIFICATION_RELEASED)
                        GUI_EndDialog(hWin, 0);

                    break;
                case GUI_ID_CANCEL:
                    if(NCode==WM_NOTIFICATION_RELEASED)
                        GUI_EndDialog(hWin, 0);

                    break;
                case GUI_ID_BUTTON0:
                    switch(NCode)
                    {
                        case WM_NOTIFICATION_RELEASED:
    
                            OnButtonReleased(pMsg);    //创建第二个对话框
                            break;
                    }
                    break;
                case GUI_ID_BUTTON1:
                    switch(NCode)
                    {
                        case WM_NOTIFICATION_RELEASED:
    
                            OnButtonReleased(pMsg);
                            break;
                    }
                    break;
                case GUI_ID_BUTTON2:
                    switch(NCode)
                    {
                        case WM_NOTIFICATION_RELEASED:
                            OnButtonReleased(pMsg);
                            break;
                    }
                    break;
                case GUI_ID_BUTTON3:
                    switch(NCode)
                    {
                        case WM_NOTIFICATION_RELEASED:
                            OnButtonReleased(pMsg);
                            break;
                    }
                    break;

            }
            break;
        default:
            WM_DefaultProc(pMsg);
    }
}


/*********************************************************************
*
*       MainTask
*
**********************************************************************
*/
void MainTask22(void) 

    GUI_Init();
    WM_SetDesktopColor(GUI_WHITE);      /* Automacally update desktop window */
    WM_SetCreateFlags(WM_CF_MEMDEV);  /* Use memory devices on all windows to avoid flicker */
WM_EnableMemdev(WM_HBKWIN);
    //PROGBAR_SetDefaultSkin(PROGBAR_SKIN_FLEX);
    //FRAMEWIN_SetDefaultSkin(FRAMEWIN_SKIN_FLEX);
    //PROGBAR_SetDefaultSkin(PROGBAR_SKIN_FLEX);
    //BUTTON_SetDefaultSkin(BUTTON_SKIN_FLEX);
    //CHECKBOX_SetDefaultSkin(CHECKBOX_SKIN_FLEX);
    //DROPDOWN_SetDefaultSkin(DR OPDOWN_SKIN_FLEX);
    //SCROLLBAR_SetDefaultSkin(SCROLLBAR_SKIN_FLEX);
    //SLIDER_SetDefaultSkin(SLIDER_SKIN_FLEX);
    //HEADER_SetDefaultSkin(HEADER_SKIN_FLEX);
    //RADIO_SetDefaultSkin(RADIO_SKIN_FLEX);

    //创建第一个对话框,
    GUI_ExecDialogBox(_aDialogCreate1, GUI_COUNTOF(_aDialogCreate1), &_cbCallback1, 0, 0, 0);

}

2:
#include <stddef.h>
#include "GUI.h"
#include "DIALOG.h"

#include "WM.h"
#include "BUTTON.h"
#include "CHECKBOX.h"
#include "DROPDOWN.h"
#include "EDIT.h"
#include "FRAMEWIN.h"
#include "LISTBOX.h"
#include "MULTIEDIT.h"
#include "RADIO.h"
#include "SLIDER.h"
#include "TEXT.h"
#include "ROGBAR.h"
#include "SCROLLBAR.h"
#include "LISTVIEW.h"





//EventsFunctionList
void OnButtonReleased2(WM_MESSAGE * pMsg);
//EndofEventsFunctionList

extern WM_HWIN mainhWin; 
WM_HWIN mainhWin2;
/*********************************************************************
*
*       static data
*
**********************************************************************
*/



/*********************************************************************
*
*       Dialog resource
*
* This table conatins the info required to create the dialog.
* It has been created by ucGUIbuilder.
*/

static const GUI_WIDGET_CREATE_INFO _aDialogCreate2[] = {  //
    { FRAMEWIN_CreateIndirect,  "xDSL-p",            0,                       0,  0,  480,320,0,0},
    { EDIT_CreateIndirect,      "0.00",              GUI_ID_EDIT0,            224,88, 72, 23, 0,0},
    { EDIT_CreateIndirect,      "0.00",              GUI_ID_EDIT1,            224,135,72, 23, 0,0},
    { EDIT_CreateIndirect,      "0.00",              GUI_ID_EDIT2,            224,186,72, 23, 0,0},
    { TEXT_CreateIndirect,      "TEXT1",             GUI_ID_TEXT1,            164,135,57, 20, 0,0},
    { TEXT_CreateIndirect,      "TEXT2",             GUI_ID_TEXT2,            164,186,60, 25, 0,0},
    { TEXT_CreateIndirect,      "TEXT0",             GUI_ID_TEXT0,            164,88, 52, 27, 0,0},
    { BUTTON_CreateIndirect,    "Next",              GUI_ID_BUTTON0,          406,263,56, 27, 0,0}
};



/*****************************************************************
**      FunctionName:void aintDialog(WM_MESSAGE * pMsg)
**      Function: to initialize the Dialog items
**                                                      
**      call this function in _cbCallback --> WM_PAINT
*****************************************************************/

void aintDialog2(WM_MESSAGE * pMsg)
{
    WM_HWIN hWin = pMsg->hWin;

}



/*****************************************************************
**      FunctionName:void InitDialog(WM_MESSAGE * pMsg)
**      Function: to initialize the Dialog items
**                                                      
**      call this function in _cbCallback --> WM_INIT_DIALOG
*****************************************************************/

void InitDialog2(WM_MESSAGE * pMsg)
{
    WM_HWIN hWin = pMsg->hWin;
mainhWin2 = hWin;
    //
    //FRAMEWIN
    //
    FRAMEWIN_SetClientColor(hWin,0xc0c0ff);
    FRAMEWIN_SetFont(hWin,&GUI_Font8x16);
    FRAMEWIN_SetTitleHeight(hWin,18);
    //
    //GUI_ID_EDIT0
    //
    EDIT_SetFont(WM_GetDialogItem(hWin,GUI_ID_EDIT0),&GUI_Font8x16);
    EDIT_SetText(WM_GetDialogItem(hWin,GUI_ID_EDIT0),"0.00");
    //
    //GUI_ID_EDIT1
    //
    EDIT_SetFont(WM_GetDialogItem(hWin,GUI_ID_EDIT1),&GUI_Font8x16);
    EDIT_SetText(WM_GetDialogItem(hWin,GUI_ID_EDIT1),"0.00");
    //
    //GUI_ID_EDIT2
    //
    EDIT_SetFont(WM_GetDialogItem(hWin,GUI_ID_EDIT2),&GUI_Font8x16);
    EDIT_SetText(WM_GetDialogItem(hWin,GUI_ID_EDIT2),"0.00");
    //
    //GUI_ID_TEXT1
    //
    TEXT_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_TEXT1),0xc0c0ff);
    //
    //GUI_ID_TEXT2
    //
    TEXT_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_TEXT2),0xc0c0ff);
    //
    //GUI_ID_TEXT0
    //
    TEXT_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_TEXT0),0xc0c0ff);
    //
    //GUI_ID_BUTTON0
    //
    BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON0),BUTTON_CI_UNPRESSED,0xc0c0ff);
    BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON0),BUTTON_CI_PRESSED,0x0000ff);
    BUTTON_SetFont(WM_GetDialogItem(hWin,GUI_ID_BUTTON0),&GUI_FontComic18B_ASCII);

}




/*********************************************************************
*
*       Dialog callback routine
*/
static void _cbCallback2(WM_MESSAGE * pMsg) 
{
    int NCode, Id;
    WM_HWIN hWin = pMsg->hWin;
    switch (pMsg->MsgId) 
    {
        case WM_PAINT:
            aintDialog2(pMsg);
WM_ExecIdle();
            break;
        case WM_INIT_DIALOG:
            InitDialog2(pMsg);
WM_ExecIdle();
            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;
        case WM_NOTIFY_PARENT:
            Id = WM_GetId(pMsg->hWinSrc); 
            NCode = pMsg->Data.v;        
            switch (Id) 
            {
                case GUI_ID_OK:
                    if(NCode==WM_NOTIFICATION_RELEASED)
                        GUI_EndDialog(hWin, 0);

                    break;
                case GUI_ID_CANCEL:
                    if(NCode==WM_NOTIFICATION_RELEASED)
                        GUI_EndDialog(hWin, 0);

                    break;
                case GUI_ID_BUTTON0: //next按钮,创建第三个对话框
                    switch(NCode)
                    {
                        case WM_NOTIFICATION_RELEASED:
                              OnButtonReleased2(pMsg);
 //GUI_EndDialog(hWin, 0);
 WM_ExecIdle();
                            break;
                    }
                    break;

            }
            break;
        default:
            WM_DefaultProc(pMsg);
    }
}


/*********************************************************************
*
*       MainTask
*
**********************************************************************
*/
void MainTask2(void) 

   // GUI_Init();
   // WM_SetDesktopColor(GUI_WHITE);      /* Automacally update desktop window */
   // WM_SetCreateFlags(WM_CF_MEMDEV);  /* Use memory devices on all windows to avoid flicker */
    //PROGBAR_SetDefaultSkin(PROGBAR_SKIN_FLEX);
    //FRAMEWIN_SetDefaultSkin(FRAMEWIN_SKIN_FLEX);
    //PROGBAR_SetDefaultSkin(PROGBAR_SKIN_FLEX);
    //BUTTON_SetDefaultSkin(BUTTON_SKIN_FLEX);
    //CHECKBOX_SetDefaultSkin(CHECKBOX_SKIN_FLEX);
    //DROPDOWN_SetDefaultSkin(DROPDOWN_SKIN_FLEX);
    //SCROLLBAR_SetDefaultSkin(SCROLLBAR_SKIN_FLEX);
    //SLIDER_SetDefaultSkin(SLIDER_SKIN_FLEX);
    //HEADER_SetDefaultSkin(HEADER_SKIN_FLEX);
    //RADIO_SetDefaultSkin(RADIO_SKIN_FLEX);

    
    GUI_ExecDialogBox(_aDialogCreate2, GUI_COUNTOF(_aDialogCreate2), &_cbCallback2, mainhWin, 0, 0);
WM_ExecIdle();
}

3:
#include <stddef.h>
#include "GUI.h"
#include "DIALOG.h"

#include "WM.h"
#include "BUTTON.h"
#include "CHECKBOX.h"
#include "DROPDOWN.h"
#include "EDIT.h"
#include "FRAMEWIN.h"
#include "LISTBOX.h"
#include "MULTIEDIT.h"
#include "RADIO.h"
#include "SLIDER.h"
#include "TEXT.h"
#include "ROGBAR.h"
#include "SCROLLBAR.h"
#include "LISTVIEW.h"





//EventsFunctionList
void OnButtonReleased(WM_MESSAGE * pMsg);
//EndofEventsFunctionList
extern WM_HWIN mainhWin,mainhWin2;

/*********************************************************************
*
*       static data
*
**********************************************************************
*/



/*********************************************************************
*
*       Dialog resource
*
* This table conatins the info required to create the dialog.
* It has been created by ucGUIbuilder.
*/

static const GUI_WIDGET_CREATE_INFO _aDialogCreate3[] = {
    { FRAMEWIN_CreateIndirect,  "Caption",           0,                       0,  0,  480,320,0,0},
    { BUTTON_CreateIndirect,    "xDSL sta",          GUI_ID_BUTTON0,          102,51, 90, 80, 0,0},
    { BUTTON_CreateIndirect,    "WAN",               GUI_ID_BUTTON1,          260,51, 90, 80, 0,0},
    { BUTTON_CreateIndirect,    "Network",           GUI_ID_BUTTON2,          102,151,90, 80, 0,0},
    { BUTTON_CreateIndirect,    "Record",            GUI_ID_BUTTON3,          260,151,90, 80, 0,0},
    { BUTTON_CreateIndirect,    "Back",              GUI_ID_BUTTON4,          315,268,56, 22, 0,0},
    { BUTTON_CreateIndirect,    "Home",              GUI_ID_BUTTON5,          392,268,56, 22, 0,0}
};



/*****************************************************************
**      FunctionName:void aintDialog(WM_MESSAGE * pMsg)
**      Function: to initialize the Dialog items
**                                                      
**      call this function in _cbCallback --> WM_PAINT
*****************************************************************/

void PaintDialog3(WM_MESSAGE * pMsg)
{
    WM_HWIN hWin = pMsg->hWin;

}



/*****************************************************************
**      FunctionName:void InitDialog(WM_MESSAGE * pMsg)
**      Function: to initialize the Dialog items
**                                                      
**      call this function in _cbCallback --> WM_INIT_DIALOG
*****************************************************************/

void InitDialog3(WM_MESSAGE * pMsg)
{
    WM_HWIN hWin = pMsg->hWin;
    //
    //FRAMEWIN
    //
    FRAMEWIN_SetClientColor(hWin,0xc0c0ff);
    FRAMEWIN_SetFont(hWin,&GUI_Font8x16);
    FRAMEWIN_SetTitleHeight(hWin,18);
    //
    //GUI_ID_BUTTON0
    //
    BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON0),BUTTON_CI_UNPRESSED,0xc0c0ff);
    BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON0),BUTTON_CI_PRESSED,0x0000ff);
    BUTTON_SetFont(WM_GetDialogItem(hWin,GUI_ID_BUTTON0),&GUI_Font16B_ASCII);
    //
    //GUI_ID_BUTTON1
    //
    BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON1),BUTTON_CI_UNPRESSED,0xc0c0ff);
    BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON1),BUTTON_CI_PRESSED,0x0000ff);
    BUTTON_SetFont(WM_GetDialogItem(hWin,GUI_ID_BUTTON1),&GUI_Font16B_ASCII);
    //
    //GUI_ID_BUTTON2
    //
    BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON2),BUTTON_CI_UNPRESSED,0xc0c0ff);
    BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON2),BUTTON_CI_PRESSED,0x0000ff);
    BUTTON_SetFont(WM_GetDialogItem(hWin,GUI_ID_BUTTON2),&GUI_Font16B_ASCII);
    //
    //GUI_ID_BUTTON3
    //
    BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON3),BUTTON_CI_UNPRESSED,0xc0c0ff);
    BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON3),BUTTON_CI_PRESSED,0x0000ff);
    BUTTON_SetFont(WM_GetDialogItem(hWin,GUI_ID_BUTTON3),&GUI_Font16B_ASCII);
    //
    //GUI_ID_BUTTON4
    //
    BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON4),BUTTON_CI_UNPRESSED,0xc0c0ff);
    BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON4),BUTTON_CI_PRESSED,0x0000ff);
    BUTTON_SetFont(WM_GetDialogItem(hWin,GUI_ID_BUTTON4),&GUI_Font16B_ASCII);
    //
    //GUI_ID_BUTTON5
    //
    BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON5),BUTTON_CI_UNPRESSED,0xc0c0ff);
    BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON5),BUTTON_CI_PRESSED,0x0000ff);
    BUTTON_SetFont(WM_GetDialogItem(hWin,GUI_ID_BUTTON5),&GUI_Font16B_ASCII);

}




/*********************************************************************
*
*       Dialog callback routine
*/
static void _cbCallback3(WM_MESSAGE * pMsg) 
{
    int NCode, Id;
    WM_HWIN hWin = pMsg->hWin;
    switch (pMsg->MsgId) 
    {
        case WM_PAINT:
            PaintDialog3(pMsg);
            break;
        case WM_INIT_DIALOG:
            InitDialog3(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;
        case WM_NOTIFY_PARENT:
            Id = WM_GetId(pMsg->hWinSrc); 
            NCode = pMsg->Data.v;        
            switch (Id) 
            {
                case GUI_ID_OK:
                    if(NCode==WM_NOTIFICATION_RELEASED)
                        GUI_EndDialog(hWin, 0);
                    break;
                case GUI_ID_CANCEL:
                    if(NCode==WM_NOTIFICATION_RELEASED)
                        GUI_EndDialog(hWin, 0);
                    break;
                case GUI_ID_BUTTON0:
                    switch(NCode)
                    {
                        case WM_NOTIFICATION_RELEASED:
                            OnButtonReleased3(pMsg);
                            break;
                    }
                    break;
                case GUI_ID_BUTTON1:
                    switch(NCode)
                    {
                        case WM_NOTIFICATION_RELEASED:
                            OnButtonReleased3(pMsg);
                            break;
                    }
                    break;
                case GUI_ID_BUTTON2:
                    switch(NCode)
                    {
                        case WM_NOTIFICATION_RELEASED:
                            OnButtonReleased3(pMsg);
                            break;
                    }
                    break;
                case GUI_ID_BUTTON3:
                    switch(NCode)
                    {
                        case WM_NOTIFICATION_RELEASED:
                            OnButtonReleased3(pMsg);
                            break;
                    }
                    break;
                case GUI_ID_BUTTON4:    //Back按钮
                    switch(NCode)
                    {
                        case WM_NOTIFICATION_RELEASED:
                             //OnButtonReleased3(pMsg);
 GUI_EndDialog(hWin, 0);  //结束当前对话框,回到第二个对话框,
 WM_ExecIdle();
                            break;
                    }
                    break;
                case GUI_ID_BUTTON5:
                    switch(NCode)
                    {
                        case WM_NOTIFICATION_RELEASED: //Home按钮
                            //OnButtonReleased3(pMsg);
 WM_HideWindow(mainhWin2); //隐藏第二个对话框,直接回到第一个对话框。
 //GUI_EndDialog(mainhWin2, 0);
 WM_ExecIdle();
// 
// WM_InvalidateWindow(mainhWin2); 
// WM_SelectWindow(mainhWin);
// WM_ShowWindow(mainhWin); 
// WM_DeleteWindow(mainhWin2) ;
// WM_ExecIdle();
                            break;
                    }
                    break;

            }
            break;
        default:
            WM_DefaultProc(pMsg);
    }
}


/*********************************************************************
*
*       MainTask
*
**********************************************************************
*/
void MainTask3(void) 

    //GUI_Init();
    //WM_SetDesktopColor(GUI_WHITE);      /* Automacally update desktop window */
    //WM_SetCreateFlags(WM_CF_MEMDEV);  /* Use memory devices on all windows to avoid flicker */
    //PROGBAR_SetDefaultSkin(PROGBAR_SKIN_FLEX);
    //FRAMEWIN_SetDefaultSkin(FRAMEWIN_SKIN_FLEX);
    //PROGBAR_SetDefaultSkin(PROGBAR_SKIN_FLEX);
    //BUTTON_SetDefaultSkin(BUTTON_SKIN_FLEX);
    //CHECKBOX_SetDefaultSkin(CHECKBOX_SKIN_FLEX);
    //DROPDOWN_SetDefaultSkin(DROPDOWN_SKIN_FLEX);
    //SCROLLBAR_SetDefaultSkin(SCROLLBAR_SKIN_FLEX);
    //SLIDER_SetDefaultSkin(SLIDER_SKIN_FLEX);
    //HEADER_SetDefaultSkin(HEADER_SKIN_FLEX);
    //RADIO_SetDefaultSkin(RADIO_SKIN_FLEX);
    GUI_ExecDialogBox(_aDialogCreate3, GUI_COUNTOF(_aDialogCreate3), &_cbCallback3, mainhWin2, 0, 0);
WM_ExecIdle();
}

4:
#include <stddef.h>
#include "GUI.h"
#include "DIALOG.h"

extern void MainTask2(void);
extern void MainTask3(void);
void OnButtonReleased(WM_MESSAGE * pMsg)
{
//   GUI_ExecDialogBox(_aDialogCreate2, GUI_COUNTOF(_aDialogCreate2), &_cbCallback2, 0, 0, 0);
    MainTask2();  //创建第二个对话框
}

void OnButtonReleased2(WM_MESSAGE * pMsg)
{
    MainTask3();  //创建第三个对话框
}

void OnButtonReleased3(WM_MESSAGE * pMsg)
{
   
}
回复 支持 反对

使用道具 举报

11

主题

36

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
229
金钱
229
注册时间
2012-11-16
在线时间
43 小时
 楼主| 发表于 2013-2-1 15:49:25 | 显示全部楼层
大神们都不在吗?其实我这个问题的核心是:ucgui实现多个对话框,并且对话框之间相互调用时,该怎么样编写应用程序或有哪些注意的地方
回复 支持 反对

使用道具 举报

96

主题

762

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1228
金钱
1228
注册时间
2012-10-19
在线时间
15 小时
发表于 2013-2-1 15:55:50 | 显示全部楼层
回复【4楼】chunychj:
---------------------------------
代码这么长 谁帮你看?
回复 支持 反对

使用道具 举报

2

主题

40

帖子

0

精华

初级会员

Rank: 2

积分
68
金钱
68
注册时间
2014-7-11
在线时间
0 小时
发表于 2014-8-2 21:37:09 | 显示全部楼层
帮顶,同样遇见问题
回复 支持 反对

使用道具 举报

4

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
76
金钱
76
注册时间
2014-9-12
在线时间
3 小时
发表于 2015-1-7 13:36:19 | 显示全部楼层
回复【4楼】chunychj:
---------------------------------
你好,我想请问你下,你点击edit后如何调出一个软键盘dialog呢,加入我现在这个软键盘dialog已经写好了

我这样写:
case GUI_ID_EDIT1:
        if(NCODE==WM_NOTIFICATION_CLICKED)
       {
               GUI_CreateDialogBox(_aDialogCreate, GUI_COUNTOF(_aDialogCreate), &_cbCallback, DETECT_HWIN, 0, 0);
       }

为什么这样,点击这个EDIT1后if判断后不能进入创建对话框,可以给我指点下吗,感激不尽!!
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-27 09:15

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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