Re: Деактивация MDI CHILD
От: PSP Беларусь  
Дата: 19.11.01 13:26
Оценка:
Здравствуйте dandreev, Вы писали:

D>Кто нибудь знает корректные пути повторить следующую функциональность?


D>Требуется — в "ручную" отключить command routing для активного MDI child окна,

D>и сделать его заголовок серым.

Собсна про команд рутинг всё написано в MSDN в одноимённой статье.
Серый заголовок -- имхо взять да деактивировать фрэйм.

D>Такая функциональность есть например в Visual Basic 6 или Interdev.

D>Когда пользоватьель щелкает по toolbar с properties активное MDI child окно становится неактивным.

D>Сейчас я сделал крайне криво — создается невидимый MDI child фрейм и если control на toolbar получает фокус, то сначала он активирует это окно, а затем

D>опять себя.
D>Есть крайне неприятный минус в этом решении — При maximized MDI окнах получение фокуса контрола на toolbar все их опять каскадирует, и это естественно потому как у fake MDI фрейма стиль WS_OVERLAPPED. Да и двойной приход к контролу WM_SETFOCUS (второй раз сам себе) череват проблемами.

Приход можно отследить.

D>Вообще хотелось бы избавиться от этого окна... но работа с MDI это всего менее десятка messages из Winuser.h.. других средств я не знаю.


D>Может есть какие нибудь идеи по этому поводу (я уж не говорю про решения, хоть натолкнете меня на мысль какую)?


Кста, о птицах. А почему бы не рисовать заголовок окна вручную?
Я это к чему. Ни слова не нашёл в MSDN про деактивирование mdi окна.
Всегда Ваш, PSP.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.