1 / 1 / 0
Регистрация: 18.04.2011
Сообщений: 8
1

Как изменять размеры дочернего окна при изменении размеров родительского?

18.04.2011, 00:21. Показов 6165. Ответов 2
Метки нет (Все метки)

Есть главное окно и внутри него прорисовано дочернее(благодаря стилю WS_BORDER), которое разделяет клиентскую зону пополам. Но я столкнулся с проблемой, а именно при увеличении/уменьшении размеров главного окна, дочернее окно не меняет свои формы, и я понимаю что не должно само по себе оно это делать. Вот только как сделать так, чтобы дочернее окно измянло свои размеры при изменении размеров главного окна, продолжая разделять его пополам.

Есть догадка что нужно прописать в КОЛБЭКЕ сообщение WM_SIZE, а вот что именно там писать не знаю.
Помогите пожалуйста!
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.04.2011, 00:21
Ответы с готовыми решениями:

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

Как при создании дочернего окна передать ему указатель на static-переменную в оконной процедуре родительского?
Есть оконная процедура родительского окна, в ней есть static-переменная, например, static...

Как получить размеры клиентской области окна-родителя в функции дочернего окна?
задание такое: имеется дочернее окно,которое "убегает" от курсора мыши в пределах родительского...

При изменении размеров окна выдержать квадратную форму
Приветствую. Создаю окно со стилем WS_OVERLAPPEDWINDOW, с равным соотношением горизонтали и...

2
Исследователь
318 / 317 / 24
Регистрация: 06.04.2011
Сообщений: 872
18.04.2011, 01:04 2
Лучший ответ Сообщение было отмечено Hils как решение

Решение

Можно, например, сделать так:

C++
1
2
3
4
5
6
7
8
9
LRESULT CALLBACK WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) {
switch(uMsg) {
case WM_SIZE:
SetWindowPos(hwndChild, (HWND)NULL, 0, 0, wParam / 2, lParam, SWP_NOMOVE);
break;
}
 
return DefWindowProc(hWnd, uMsg, wParam, lParam);
}
1
1 / 1 / 0
Регистрация: 18.04.2011
Сообщений: 8
20.04.2011, 21:20  [ТС] 3
Разобрался с проблемой как оказалось, нужно было использовать сообщение не WM SIZE, a WM SIZING.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.04.2011, 21:20
Помогаю со студенческими работами здесь

Линия, нарисованная мышкой, перерисовывается при изменении размеров окна
подскажите пожалуйста, как сделать так, чтобы нарисованная мышкой линия не исчезала, а...

Создание простого родительского и дочернего окна в нем
Подскажите в чем ошибка? Появляется только родительское окно. Дочернее окно должно быть в...

Как изменять размер контролов при разворачивании на весь экран диалога или изменении его размера?
Вся суть вопроса описана в заголовке темы)

При изменении размеров формы изменять размеры всех объектов, расположенных на ней
Столкнулся с такой ситуацией. Использую ResizeMode = "CanResizeWithGrip". Все в порядке, окошко...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru