0

我有一个由 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;

有什么建议吗?

4

1 回答 1

0

我想我想通了。我初始化了WM_INITDIALOG问题所在的选项卡,因为每次应用程序显示选项卡对话框时,它都会发送此消息并再次初始化它们。在进入消息循环之前,我将这部分从 initdialog 中删除到应用程序的初始化

于 2013-06-01T13:42:54.090 回答