硬汉嵌入式论坛

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

[emWin] 关于stemwin 两层界面显示和删除问题

[复制链接]

16

主题

18

回帖

66

积分

初级会员

积分
66
发表于 2019-5-23 11:42:50 | 显示全部楼层 |阅读模式
各位大佬:帮看看看这个程序什么问题(标红问题1和问题2),用的是stm249 + stemwin ,先行谢过了,搞了两天了,也没头绪
void  SampleTestInitLevel1(WM_HWIN hParent)
{
    g_hLevel1EditPatientId = EDIT_CreateEx(HOME_SCREEN_REGION1_X + 453, HOME_SCREEN_REGION1_Y + 27, 111, 20, hParent, WM_CF_SHOW,EDIT_CF_HCENTER | EDIT_CF_VCENTER,GUI_ID_EDIT5, 16);
   
/*问题1:上面的EDIT能显示出来,下面的TEXT 没有显示出来*/
g_hLevel1TxtOptTip0 = TEXT_CreateEx(HOME_SCREEN_REGION1_X + 347,HOME_SCREEN_REGION1_Y + 67, 252,24,hParent,WM_CF_SHOW,TEXT_CF_HCENTER | TEXT_CF_VCENTER,GUI_ID_TEXT2,"Be sure");
    g_hLevel1TxtOptTip1 = TEXT_CreateEx(HOME_SCREEN_REGION1_X + 237, HOME_SCREEN_REGION1_Y + 164, 128, 20, hParent, WM_CF_SHOW,TEXT_CF_HCENTER | TEXT_CF_VCENTER, GUI_ID_TEXT3, "scaner test card");
    g_hLevel1TxtPatientId = TEXT_CreateEx(HOME_SCREEN_REGION1_X + 383,HOME_SCREEN_REGION1_Y + 28,60,20,hParent, WM_CF_SHOW,TEXT_CF_HCENTER | TEXT_CF_VCENTER,GUI_ID_TEXT4,"patient id");
}
static void CallbackButtonNext(WM_MESSAGE* pMsg)
{
    WM_HWIN     hMainParent;
    char        text[16];
    int         curGui;
   
    switch (pMsg->MsgId)
    {        
        case WM_PAINT:
            if(BUTTON_IsPressed(pMsg->hWin))
            {

                    
SampleTestHideLevel0() //这个函数没有成功隐藏第0层界面控件

                    SampleTestInitLevel1(hMainParent); //这个函数只成功创建第一个控件(EDIT),后面三个(TEXT)没有成功创建

            }
            else
            {   
               
            }
        default:
        
            BUTTON_Callback(pMsg);
        
    }
}
static void CallbackButtonSampleTest(WM_MESSAGE* pMsg)
{
    uint32_t     curGui;
    switch (pMsg->MsgId)
    {        
        case WM_PAINT:
            if(BUTTON_IsPressed(pMsg->hWin))
            {
                if(GUI_FLAG_SAMPLE_TEST_LEVEL0 != curGui)
                {
                    hideCurGui[curGui]();
                    showCurGui[GUI_FLAG_SAMPLE_TEST_LEVEL0]();  
                    SetCurrentGui(GUI_FLAG_SAMPLE_TEST_LEVEL0);
                }         
            }
            else
            {   
               
            }
        default:
            BUTTON_Callback(pMsg);         
    }
}
void  SampleTestInitLevel0(WM_HWIN hParent)
{
    g_hLevel0TxtOperationTips = TEXT_CreateEx(SAMPLE_TEST_LEVEL0_TXT_OPERATION_TIPS_X,
                                              SAMPLE_TEST_LEVEL0_TXT_OPERATION_TIPS_Y,
                                              SAMPLE_TEST_LEVEL0_TXT_OPERATION_TIPS_LEN,
                                              SAMPLE_TEST_LEVEL0_TXT_OPERATION_TIPS_WIDE,
                                              hParent,
                                              WM_CF_SHOW,
                                              TEXT_CF_HCENTER | TEXT_CF_VCENTER,
                                              GUI_ID_TEXT0,
                                              "input/scaner patient id");
    g_hLevel0TxtPatientId = TEXT_CreateEx( SAMPLE_TEST_LEVEL0_TXT_PATIENT_ID_X,
                                           SAMPLE_TEST_LEVEL0_TXT_PATIENT_ID_Y,
                                           SAMPLE_TEST_LEVEL0_TXT_PATIENT_ID_LEN,
                                           SAMPLE_TEST_LEVEL0_TXT_PATIENT_ID_WIDE,
                                           hParent,
                                           WM_CF_SHOW,
                                           TEXT_CF_HCENTER | TEXT_CF_VCENTER,
                                           GUI_ID_TEXT1,
                                           "patient id");
   g_hLevel0EditPatientId = EDIT_CreateEx (SAMPLE_TEST_LEVEL0_EDIT_PATIENT_ID_X,
                                           SAMPLE_TEST_LEVEL0_EDIT_PATIENT_ID_Y,
                                           SAMPLE_TEST_LEVEL0_EDIT_PATIENT_ID_LEN,
                                           SAMPLE_TEST_LEVEL0_EDIT_PATIENT_ID_WIDE,
                                           hParent,
                                           WM_CF_SHOW,
                                           TEXT_CF_HCENTER | TEXT_CF_VCENTER,
                                           GUI_ID_EDIT0,
                                           XSIZE_PHYS/4);
    g_hLevel0ButtonId = BUTTON_CreateEx(SAMPLE_TEST_LEVEL0_BUTON_NEXT_X,
                                        SAMPLE_TEST_LEVEL0_BUTON_NEXT_Y,
                                        SAMPLE_TEST_LEVEL0_BUTON_NEXT_LEN,
                                        SAMPLE_TEST_LEVEL0_BUTON_NEXT_WIDE,
                                        hParent,
                                        WM_CF_SHOW,
                                        TEXT_CF_HCENTER | TEXT_CF_VCENTER,
                                        GUI_ID_BUTTON0);
    BUTTON_SetText(g_hLevel0ButtonId, "next");
    WM_SetCallback(g_hLevel0ButtonId, CallbackButtonNext);
}
void  SampleTestHideLevel0()
{
    //问题2:调用这里,并没有将第0 层界面隐藏,奇怪
    WM_HideWindow(g_hLevel0TxtOperationTips);
    WM_HideWindow(g_hLevel0TxtPatientId);
    WM_HideWindow(g_hLevel0EditPatientId);   
    WM_HideWindow(g_hLevel0ButtonId);

}

// 从这里开始,hWinParent 为调用者通过调用WM_GetDialogItem(pMsg->hWin, ID_FRAMEWIN_0)接口获得的
void MainScreen(WM_HWIN hWinParent)
{
。。。。。
g_hWinRegin1 = WINDOW_CreateEx(HOME_SCREEN_REGION0_X,HOME_SCREEN_REGION0_Y, HOME_SCREEN_REGION0_LEN,HOME_SCREEN_REGION0_WIDE, hWinParent, WM_CF_SHOW, 0, 0, 0);     
buttonSampleTest = BUTTON_CreateEx(HOME_SCREEN_BUTTON_SAMPLE_TEST_X, HOME_SCREEN_BUTTON_SAMPLE_TEST_Y, HOME_SCREEN_BUTTON_SAMPLE_TEST_LEN,HOME_SCREEN_BUTTON_SAMPLE_TEST_WIDE, hWinParent, WM_CF_SHOW, 0,GUI_ID_BUTTON0);
WM_SetCallback(buttonSampleTest, CallbackButtonSampleTest);
SampleTestInitLevel0(g_hWinRegin1);
。。。。。
}


回复

使用道具 举报

36

主题

2050

回帖

2158

积分

至尊会员

积分
2158
发表于 2019-5-23 11:50:03 | 显示全部楼层
为什么程序实现的这么麻烦,直接将所有控件用对话框资源列表的方式创建就好了,管理也简单
Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better.
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-18 03:01 , Processed in 0.189373 second(s), 23 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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