Максимизированное MDI-окно

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Jupiter
Обычный пользователь
Обычный пользователь
 
Сообщения: 51
Зарегистрирован: 17.01.2006 (Вт) 12:34

Максимизированное MDI-окно

Сообщение Jupiter » 04.04.2006 (Вт) 13:07

Здравствуйте.

Как поймать сообщение, посылаемое СИСТЕМОЙ для насильного изменения размера окна?

Есть MDI окна. Одно из дочерних окно максимизировано. _Другое_ дочерние окно находится на переднем плане (это у меня такое специально-обученное окно есть). Любой клик по маленькому окну переднего плана ведет к тому, что максимизированное окно принимает нормальный размер (мне этого не надо). Это происки MDI-архитиктуры. Пробую применять сабклассинг для перехвата сообщений. Но как узнать момент, когда система посылает окну сообщение принять нормальный размер? Там есть WM_SIZE с wParam = SIZE_RESTORED, но оно приходит уже после того, как черное дело сделано.
Спасибо

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 04.04.2006 (Вт) 13:14

А WM_SIZING там есть?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Jupiter
Обычный пользователь
Обычный пользователь
 
Сообщения: 51
Зарегистрирован: 17.01.2006 (Вт) 12:34

Сообщение Jupiter » 04.04.2006 (Вт) 13:56

GSerg писал(а):А WM_SIZING там есть?

WM_SIZING работает только при изменении размера окна пользователем с помощью МЫШИ. При изменении вида окна (максимизированное/нормального размера) данное сообщение, к сожалению, не приходит.

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 04.04.2006 (Вт) 14:01

А "_другое_" окно mdi-child? Если да, то попробуй вместо него обычное, но при показе сделай ему SetParent главного. Часть mdi-происков будет обходить такое окно стороной.
Лучший способ понять что-то самому — объяснить это другому.

Jupiter
Обычный пользователь
Обычный пользователь
 
Сообщения: 51
Зарегистрирован: 17.01.2006 (Вт) 12:34

Сообщение Jupiter » 04.04.2006 (Вт) 14:59

Antonariy писал(а):сделай ему SetParent главного.

Верно. На этом решении я и остановлюсь. Я и раньше пытался отключить этому окну свойство Midi-child, но не знал, как заставить его быть внутри родителя. Даже более того, теперь я могу назначить родителем не главное Mdi-окно, а то самое, которое у меня описано как максимизированное. Это правильнее, т.к. на большом окне карта, а на маленьком - некоторая дополнительная информация. СПАСИБО.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 181

    TopList