Перерисовка MDI-child`a
От: Doid Россия  
Дата: 22.06.04 12:57
Оценка:
Доброго времени суток!
Необходимо реализовать работу окон, работающих как MDI-child`ы, но в то же время ведущих себя и как диалоговые окна (инициализация из ресурса диалога + неизменные размеры диалога(Dialog Frame)).
Проблему решил следующим образом:
1. Создаю MDICLIENT`а.
2. Создаю MDI-child... ну в общем как обычно
3. Убираю у него MinimizeBox, MaximizeBox и SizeBox, подгоняю размеры под размер диалога.
4. Создаю диалог через CreateDialog, родитель — MDI-child.
Результат: все нормально создается и работает... Вот только есть одна проблемка: когда убираешь SizeBox, остается узенькая рамочка, которая не перерисовывается. Т.е. если поверх поместить другое MDI-child окно, а потом активировать прежнее, то на этой самой рамочке остается картинка другого окна.
Подскажите пожалуйста как избавиться от подобного дефекта?
Заранее благодарен.
Re: Перерисовка MDI-child`a
От: rus blood Россия  
Дата: 22.06.04 13:03
Оценка:
D>3. Убираю у него MinimizeBox, MaximizeBox и SizeBox, подгоняю размеры под размер диалога.

А что такое SizeBox ?
Имею скафандр — готов путешествовать!
Re[2]: Перерисовка MDI-child`a
От: Doid Россия  
Дата: 22.06.04 13:13
Оценка:
Здравствуйте, rus blood, Вы писали:

RB>А что такое SizeBox ?

Другими словами, sizing border. Типа хрень, с помощью которой можно изменять размер окна.
Re[3]: Перерисовка MDI-child`a
От: rus blood Россия  
Дата: 22.06.04 13:18
Оценка:
Здравствуйте, Doid, Вы писали:

D>Здравствуйте, rus blood, Вы писали:


RB>>А что такое SizeBox ?

D>Другими словами, sizing border. Типа хрень, с помощью которой можно изменять размер окна.

А ты используешь WS_THICKFRAME ?
Имею скафандр — готов путешествовать!
Re[4]: Перерисовка MDI-child`a
От: Doid Россия  
Дата: 23.06.04 04:46
Оценка:
Здравствуйте, rus blood, Вы писали:

RB>А ты используешь WS_THICKFRAME ?

Снимаю флаг WS_SIZEBOX (= WS_THICKFRAME)
Re[5]: Перерисовка MDI-child`a
От: Doid Россия  
Дата: 23.06.04 05:22
Оценка:
+ (Doid 23.06.04 08:46)
Подозреваю даже, что неперерисовывающаяся рамка и есть Sizing border. А вот как правильно ее перерисовать?
Re[6]: Перерисовка MDI-child`a
От: Doid Россия  
Дата: 25.06.04 05:09
Оценка:
up...
Re[7]: Перерисовка MDI-child`a
От: Аноним  
Дата: 15.07.04 14:21
Оценка:
Здравствуйте, Doid, Вы писали:

D>up...


Ну что, решил проблему?
Re: Перерисовка MDI-child`a
От: DENIVA Россия http://www.uml3.ru
Дата: 21.11.06 14:19
Оценка:
Здравствуйте, Doid, Вы писали:

D>Доброго времени суток!

D>Необходимо реализовать работу окон, работающих как MDI-child`ы, но в то же время ведущих себя и как диалоговые окна (инициализация из ресурса диалога + неизменные размеры диалога(Dialog Frame)).
D>Проблему решил следующим образом:
D>1. Создаю MDICLIENT`а.
D>2. Создаю MDI-child... ну в общем как обычно
D>3. Убираю у него MinimizeBox, MaximizeBox и SizeBox, подгоняю размеры под размер диалога.
D>4. Создаю диалог через CreateDialog, родитель — MDI-child.
D>Результат: все нормально создается и работает... Вот только есть одна проблемка: когда убираешь SizeBox, остается узенькая рамочка, которая не перерисовывается. Т.е. если поверх поместить другое MDI-child окно, а потом активировать прежнее, то на этой самой рамочке остается картинка другого окна.
D>Подскажите пожалуйста как избавиться от подобного дефекта?
D>Заранее благодарен.

Кто-нибудь знает как решить эту проблему?
Re[2]: Перерисовка MDI-child`a
От: McQwerty Россия  
Дата: 22.11.06 15:09
Оценка:
Здравствуйте, DENIVA, Вы писали:

DEN>Здравствуйте, Doid, Вы писали:


D>>Доброго времени суток!

D>>Необходимо реализовать работу окон, работающих как MDI-child`ы, но в то же время ведущих себя и как диалоговые окна (инициализация из ресурса диалога + неизменные размеры диалога(Dialog Frame)).
D>>Проблему решил следующим образом:
D>>1. Создаю MDICLIENT`а.
D>>2. Создаю MDI-child... ну в общем как обычно
D>>3. Убираю у него MinimizeBox, MaximizeBox и SizeBox, подгоняю размеры под размер диалога.
D>>4. Создаю диалог через CreateDialog, родитель — MDI-child.
D>>Результат: все нормально создается и работает... Вот только есть одна проблемка: когда убираешь SizeBox, остается узенькая рамочка, которая не перерисовывается. Т.е. если поверх поместить другое MDI-child окно, а потом активировать прежнее, то на этой самой рамочке остается картинка другого окна.
D>>Подскажите пожалуйста как избавиться от подобного дефекта?
D>>Заранее благодарен.

DEN>Кто-нибудь знает как решить эту проблему?


Попробуй SetWindowPos + SWP_FRAMECHANGED
Re[2]: Перерисовка MDI-child`a
От: prona  
Дата: 17.02.07 14:51
Оценка:
Здравствуйте, DENIVA, Вы писали:

DEN>Кто-нибудь знает как решить эту проблему?


стиль окна устанавливаешь WS_CHILD и только!
затем: MoveWindow(hDlg, 0, 0, cxClient, cyClient, TRUE);
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.