Re: CDialog - дитя MDIClient не отрисовывает title bar синим
От: Symon Россия  
Дата: 17.03.06 13:36
Оценка: 1 (1)
Здравствуйте, Zuzzuk, Вы писали:

Z>Привет.

Z>Есть диалог, который является child'ом клиентской области CMDIFrameWnd. Поначалу диалог никак не хотел в качестве родителя принимать MDIClient window, но после установки стиля WS_CHILD он таки уговорился, но перестал отрисовывать title bar синим во время своей активности. Пробовла играть со стилями WS_OVERLAPPED, MDI_CLIENT, но чего-то не хочет всё равно синим отрисовывать.
Z>Скажите, пожалуйста, куда нужно смотреть и откуда растить руки, чтобы title bar даилога рисовался аналогично title bar'ам документов.
Z>Спасибо

Диалоги с MDI не очень то совместимы... По определению MDI. Дело в том, что для корректного отображения чилдового окна MDIClient'у нужно самому создавать чилдовое окошко. Иначе возможны проблемы. Как вариант могу предложить создавать нормальный CMDIChildWnd:
CMDIChildWnd* CMDIFrameWnd::CreateNewChild(
   CRuntimeClass* pClass,
   UINT nResource,
   HMENU hMenu = NULL,
   HACCEL hAccel = NULL
);

и в него уже пихать CFormView.
CDialog - дитя MDIClient не отрисовывает title bar синим
От: Zuzzuk Россия  
Дата: 17.03.06 13:04
Оценка:
Привет.
Есть диалог, который является child'ом клиентской области CMDIFrameWnd. Поначалу диалог никак не хотел в качестве родителя принимать MDIClient window, но после установки стиля WS_CHILD он таки уговорился, но перестал отрисовывать title bar синим во время своей активности. Пробовла играть со стилями WS_OVERLAPPED, MDI_CLIENT, но чего-то не хочет всё равно синим отрисовывать.
Скажите, пожалуйста, куда нужно смотреть и откуда растить руки, чтобы title bar даилога рисовался аналогично title bar'ам документов.
Спасибо
Re[2]: CDialog - дитя MDIClient не отрисовывает title bar си
От: Аноним  
Дата: 22.03.06 09:57
Оценка:
Здравствуйте, Symon, Вы писали:

S>Диалоги с MDI не очень то совместимы... По определению MDI. Дело в том, что для корректного отображения чилдового окна MDIClient'у нужно самому создавать чилдовое окошко. Иначе возможны проблемы. Как вариант могу предложить создавать нормальный CMDIChildWnd:

[skipped]
S>и в него уже пихать CFormView.
Спасибо, всё заработало как нужно, правда были проблемы с размерами CMDIChildWnd, но часть я решил перехватом WM_GETMINMAXINFO, но оставлся один неприятный момент — при восстановлении этого чайлда из минимизированного состояния (restore) чайлд пытается обрести свои дефолтные размеры. Когда найду причину — напишу.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.