MFC windows应用程序中的选项卡不可单击

MFC windows应用程序中的选项卡不可单击,mfc,Mfc,我对双监视器系统中的MFC windows应用程序有一个奇怪的问题。 假设我有监视器A和监视器B。 如果我的窗口工具栏(开始菜单等)在监视器A中,并且A也是我的主监视器。我的应用程序运行良好。但是,如果A有工具栏,而B是主监视器。当我将应用程序移动到窗口A时,当其他控件(按钮…)工作时,该选项卡不可单击。 我不知道发生了什么事。谢谢你的任何建议。我终于解决了问题。要获取选项卡索引,代码使用last message position获取单击点,并使用HitTest确定单击了哪个选项卡。在多监视器系

我对双监视器系统中的MFC windows应用程序有一个奇怪的问题。 假设我有监视器A和监视器B。 如果我的窗口工具栏(开始菜单等)在监视器A中,并且A也是我的主监视器。我的应用程序运行良好。但是,如果A有工具栏,而B是主监视器。当我将应用程序移动到窗口A时,当其他控件(按钮…)工作时,该选项卡不可单击。
我不知道发生了什么事。谢谢你的任何建议。

我终于解决了问题。要获取选项卡索引,代码使用last message position获取单击点,并使用HitTest确定单击了哪个选项卡。在多监视器系统中,我们不应使用LOWORD和HIWORD,如下所述:

重要信息:请勿使用LOWORD或HIWORD宏提取光标位置的x和y坐标,因为这些宏在具有多个监视器的系统上返回不正确的结果。具有多个监视器的系统可能具有负x和y坐标,LOWORD和HIWORD将坐标视为无符号量


在我使用GET_X_LPARAM或GET_Y_LPARAM之后,它就可以工作了

我终于解决了这个问题。要获取选项卡索引,代码使用last message position获取单击点,并使用HitTest确定单击了哪个选项卡。在多监视器系统中,我们不应使用LOWORD和HIWORD,如下所述:

重要信息:请勿使用LOWORD或HIWORD宏提取光标位置的x和y坐标,因为这些宏在具有多个监视器的系统上返回不正确的结果。具有多个监视器的系统可能具有负x和y坐标,LOWORD和HIWORD将坐标视为无符号量

在我使用GET_X_LPARAM或GET_Y_LPARAM之后,它就可以工作了