дочерний элемент вкладки диалоговое управление покрывает саму вкладку

Я создаю вкладку управления в WM_INITDIALOG сюда:

 INITCOMMONCONTROLSEX icex = {0};
icex.dwSize = sizeof(INITCOMMONCONTROLSEX);
icex.dwICC = ICC_TAB_CLASSES;
InitCommonControlsEx(&icex);
TCITEM tie;
LPSTR text = "my tab";
tie.mask = TCIF_TEXT|TCIF_IMAGE;
tie.iImage = -1;
tie.pszText = text;
hTab = CreateWindow(WC_TABCONTROL, "", WS_CHILD |WS_CLIPSIBLINGS| WS_VISIBLE,
0,0, 400, 350, hWnd,NULL, g_hInstance, NULL);
TabCtrl_InsertItem(hTab,0,&tie);
TabCtrl_InsertItem(hTab,1,&tie);
TabCtrl_InsertItem(hTab,2,&tie);

а также я создаю два диалога здесь, чтобы показать в каждой вкладке в качестве содержимого вкладки. Я создаю их с помощью диалогового окна выбора формы:

hwndTabcontentDialog1  = CreateDialogParam( GetModuleHandle( NULL ),
MAKEINTRESOURCE( IDD_FORMVIEW1 ), hTab, (DLGPROC)Proc1,lParam );
hwndTabcontentDialog2  = CreateDialogParam( GetModuleHandle( NULL ),
MAKEINTRESOURCE( IDD_FORMVIEW ), hTab, (DLGPROC)Proc2,lParam );

Сейчас в WM_NOTIFY Я делаю это с содержанием каждой вкладки, когда ее нажимают:

 case WM_NOTIFY:
switch (((LPNMHDR)lParam)->code)
{
case TCN_SELCHANGE:
{
if( TabCtrl_GetCurSel( ( ( LPNMHDR ) lParam) -> hwndFrom ) == 0 ) {
ShowWindow( hwndTabcontentDialog1, SW_SHOW );
ShowWindow( hwndTabcontentDialog2, SW_HIDE );

} else {
ShowWindow( hwndTabcontentDialog1, SW_HIDE );
ShowWindow( hwndTabcontentDialog2, SW_SHOW );
}
}

Теперь вкладка создана, и все в порядке (содержимое текущей вкладки не отображается), но когда я нажимаю на один из элементов вкладки, диалоговое окно закрывает все элементы управления вкладками, и вы больше не видите вкладки.
что случилось ? что я должен изменить?

0

Решение

Сразу после создания диалогов переместите / измените их размер с помощью MoveWindow. Управляющее сообщение вкладки TCM_ADJUSTRECT может помочь вам определить правильную позицию / размер для создания диалогов.

0

Другие решения

Других решений пока нет …