C++ 选项卡控件:还原对话框时局部绘制

C++ 选项卡控件:还原对话框时局部绘制,c++,winapi,visual-studio-2013,tabs,C++,Winapi,Visual Studio 2013,Tabs,从最小化状态恢复对话框后,我的选项卡控件(SysTabControl32)的边缘未完全重新绘制 例如: 该控件在资源文件中定义(编辑IDD_VJOYCONF的所有事件): 在Windows 8上使用VS2013开发。通过提升选项卡控件内部对话框的边距,问题得以解决。 更有趣的是我是如何发现这个问题的。 我使用了Sysinternals进程资源管理器。它有一个“查找窗口的进程”按钮: [编辑:] 我将鼠标悬停在整个对话框上,突出显示其各个元素,直到突出显示罪魁祸首元素: 您可以清楚地看到,它

从最小化状态恢复对话框后,我的选项卡控件(SysTabControl32)的边缘未完全重新绘制

例如:

该控件在资源文件中定义(编辑IDD_VJOYCONF的所有事件):


在Windows 8上使用VS2013开发。

通过提升选项卡控件内部对话框的边距,问题得以解决。 更有趣的是我是如何发现这个问题的。 我使用了Sysinternals进程资源管理器。它有一个“查找窗口的进程”按钮:

[编辑:]

我将鼠标悬停在整个对话框上,突出显示其各个元素,直到突出显示罪魁祸首元素:

您可以清楚地看到,它的底部正好被剪裁到问题所在的位置。这是嵌入在选项卡控件中的对话框


解决方案是提升对话框,使其不会被剪裁。

在对话框上设置
WS\u CLIPCHILDREN
样式是否有帮助?@JonathanPotter没有。您能否提供一个更完整的对话框模板来演示您的问题?它不必与您在该对话框中使用的相同,只需复制问题的最小值即可。除非那个基本的也一样。谢谢。@andlabs我添加了所有与外部对话框IDD_vjoyconf有关的内容,只是为了让其他人更清楚问题的原因,您能展示Process Explorer显示的内容吗?谢谢
IDD_VJOYCONF DIALOGEX 0, 0, 245, 282
STYLE DS_SETFONT | DS_MODALFRAME | DS_3DLOOK | DS_FIXEDSYS | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
EXSTYLE WS_EX_APPWINDOW
CAPTION "vJoyConf - Configure vJoy Devices"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
    PUSHBUTTON      "Reset All",IDC_RSTALL,98,261,50,14
    CONTROL         "",IDC_DEVTABS,"SysTabControl32",TCS_MULTILINE | TCS_TOOLTIPS,7,7,231,247
END

#ifdef APSTUDIO_INVOKED
GUIDELINES DESIGNINFO
BEGIN
    IDD_VJOYCONF, DIALOG
    BEGIN
        LEFTMARGIN, 7
        RIGHTMARGIN, 238
        TOPMARGIN, 7
        BOTTOMMARGIN, 275
    END
END
#endif    // APSTUDIO_INVOKED