我有一个由3个选项卡控件组成的GUI 当我单击每个选项卡时,该选项卡上的控件出现(当单击该选项卡时,我显示的每个选项卡都有一个对话框) 应用程序有另一个对话框,当我更改该对话框或任何其他窗口或程序的焦点并返回到主程序时,我只能看到我之前离开的选项卡,当我单击其他选项卡时它们没有显示。
我在WM_INITDIALOG
中初始化标签,并在WM_NOTIFY
中点击每个标签时显示:
case WM_NOTIFY:
switch (((LPNMHDR)lParam)->code)
{
case TCN_SELCHANGING:
{
// Return FALSE to allow the selection to change.
return FALSE;
}
break;
case TCN_SELCHANGE:
{
if( TabCtrl_GetCurSel( ( ( LPNMHDR ) lParam) -> hwndFrom ) == 0 ) {
ShowWindow( hwndTimeFrame, SW_HIDE );
ShowWindow( hwndAR, SW_HIDE );
ShowWindow( hwndInsFeed, SW_SHOW );
}
if( TabCtrl_GetCurSel( ( ( LPNMHDR ) lParam) -> hwndFrom ) == 1 )
{
ShowWindow( hwndInsFeed, SW_HIDE );
ShowWindow( hwndAR, SW_HIDE );
ShowWindow( hwndTimeFrame, SW_SHOW );
}
if( TabCtrl_GetCurSel( ( ( LPNMHDR ) lParam) -> hwndFrom ) == 2 )
{
ShowWindow( hwndInsFeed, SW_HIDE );
ShowWindow( hwndTimeFrame, SW_HIDE );
ShowWindow( hwndAR, SW_SHOW );
}
}
break;
}
break;
有什么建议吗?
答案 0 :(得分:0)
我想我弄明白了。
我初步确定了WM_INITDIALOG
中的选项卡,结果证明是问题,因为每次应用程序显示选项卡对话框时,它都会发送此消息并再次初始化它们。在进入消息循环之前,我将此部分从initdialog中删除到应用程序的初始化