当我失去焦点时选项卡不起作用

Posted

技术标签:

【中文标题】当我失去焦点时选项卡不起作用【英文标题】:tabs don't work when I am losing focus 【发布时间】:2013-06-01 01:12:30 【问题描述】:

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

有什么建议吗?

【问题讨论】:

您是否确认您仍在接收TCN_SELCHANGE 通知并且TabCtrl_GetCurSel() 没有失败? 是的。我跟踪程序,每次我正确地通过每个“IF”但“ShowWindow”没有效果! 【参考方案1】:

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

【讨论】:

以上是关于当我失去焦点时选项卡不起作用的主要内容,如果未能解决你的问题,请参考以下文章

MySQL Workbench - 外键选项卡不起作用

失去焦点时加速器命令不起作用

在 UITabcontroller 中转到 3 选项卡不起作用

PyQt5,将文本添加到选项卡不起作用

为啥 jQuery ui 选项卡不起作用?

为啥在条件格式公式中引用另一个 Google 表格选项卡不起作用?