为什么子项编辑控件在选项卡控件显示区域之外绘制?

我有一个标签控件作为主窗口的子窗口和一个编辑控件作为主窗口的子窗口。 编辑控件在选项卡控件显示区域之外绘制。 显示区域是GetClientRect(hTab, &rc); SendMessage(hTab, TCM_ADJUSTRECT, FALSE, (LPARAM)&rc);获得的区域GetClientRect(hTab, &rc); SendMessage(hTab, TCM_ADJUSTRECT, FALSE, (LPARAM)&rc); GetClientRect(hTab, &rc); SendMessage(hTab, TCM_ADJUSTRECT, FALSE, (LPARAM)&rc); 即使编辑控件是制表符控件的子节点,效果也是一样的。 我知道我可以创建一个静态控件作为选项卡控件的子项,其大小适合选项卡显示区域,并使编辑控件作为静态控件的子项,这将解决我的问题,但我想将编辑控件设置为选项卡控件或主窗口的子项使事情变得简单。 如果没有选项卡显示区域外的编辑控件绘画,有没有办法做到这一点?

 #include  #include  #include  #pragma comment(linker, \ "\"/manifestdependency:type='Win32' "\ "name='Microsoft.Windows.Common-Controls' "\ "version='6.0.0.0' "\ "processorArchitecture='*' "\ "publicKeyToken='6595b64144ccf1df' "\ "language='*'\"") #pragma comment(lib, "ComCtl32.lib") LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { static HWND hTab, hEdit; switch(msg) { case WM_CREATE: { INITCOMMONCONTROLSEX icex; TCHAR *lpTabLabel[] = { TEXT("First"), TEXT("Second") }; TCITEM tci; int i; icex.dwICC = ICC_TAB_CLASSES; icex.dwSize = sizeof(INITCOMMONCONTROLSEX); InitCommonControlsEx(&icex); hTab = CreateWindowEx(0, WC_TABCONTROLW, 0, WS_VISIBLE | WS_CHILD, 0, 0, 0, 0, hwnd, 0, GetModuleHandle(0), 0); for(i = 0; i  0) { TranslateMessage(&msg); DispatchMessage(&msg); } return (int)msg.wParam; } 

在此处输入图像描述

第二张图片显示选项卡是编辑的父级

在此处输入图像描述