初级会员
- 积分
- 90
- 金钱
- 90
- 注册时间
- 2017-6-27
- 在线时间
- 10 小时
|
1金钱
我用WM_DeleteWindow(hWin);删除句柄然后再创建新界面,结果,在WM_DeleteWindow(hWin)执行后界面的控件还在,而且新创建的界面只显示了两个edit控件。大家在切换界面的时候都是怎么做的呀?求大神讲解下。
static void _cbDialog(WM_MESSAGE *pMsg)
{
const void *pData;
WM_HWIN hItem;
U32 FileSize;
int NCode;
int Id;
switch (pMsg->MsgId)
{
case WM_PAINT:
/**< 数据刷新 */
Data_Process(pMsg);
break;
case WM_INIT_DIALOG:
/**< 创建framewin */
FrameWin_Init(pMsg, ID_TEXT_1, ID_TEXT_2, ID_TEXT_3, ID_TEXT_4,ID_IMAGE_0);
/**< text和edit的初始化 */
Edit_Show(WM_GetDialogItem(pMsg->hWin, ID_EDIT_0), &XBF24_Font, " ");
Edit_Show(WM_GetDialogItem(pMsg->hWin, ID_EDIT_1), &XBF24_Font, " ");
EDIT_SetTextAlign(WM_GetDialogItem(pMsg->hWin, ID_EDIT_0), GUI_TA_RIGHT | GUI_TA_VCENTER);
EDIT_SetTextAlign(WM_GetDialogItem(pMsg->hWin, ID_EDIT_1), GUI_TA_RIGHT | GUI_TA_VCENTER);
break;
case WM_NOTIFY_PARENT:
break;
case WM_TIMER:
/**< 显示时间和日期 */
Caculate_RTC_Show(pMsg, ID_TEXT_1, ID_TEXT_2);
/**< 重启定时器 */
WM_RestartTimer(pMsg->Data.v, 20);
break;
case MSG_JUMPA://调转到A界面
WM_DeleteWindow(_hWinB);//删除B句柄
_hWinB = 0;
PutOut_A();//调到A界面
break;
default:
WM_DefaultProc(pMsg);
break;
}
}
|
最佳答案
查看完整内容[请看2#楼]
我用的是对话框,多个对话框对应不同的界面!结束一个对话框GUI_EndDialog()函数就可以了!刚做完一个项目,我有写总结在论坛了,可以参考哦,图形处理部分源码都可以下载到的!
|