Страница: 1 |
Страница: 1 |
Вопрос: Запрет изменения размеров.
Добавлено: 18.08.04 23:22
Автор вопроса: Tigre
Как запретить изменение размеров окна.
Ответы
Всего ответов: 10
Номер ответа: 1
Автор ответа:
Kodo
Разработчик Offline Client
ICQ: 293048085
Вопросов: 37
Ответов: 457
Профиль | | #1
Добавлено: 18.08.04 23:28
lol?
BorderStyle = Fixed Single (Dialog\ToolWindow)
или, в крайнем случае
В Form_Resize
Me.Height = ... 'Height формы, см. в параметрах
Me.Width = ... 'Тоже
Номер ответа: 2
Автор ответа:
Lister
ICQ: 298621256
Вопросов: 57
Ответов: 304
Профиль | | #2
Добавлено: 19.08.04 01:43
kodo:
я не согласен - будет очень некрасиво. При попытке изменения размеров форма будет ужасно мерцать и все-таки пытаться менять свои размеры...
Tigre:
тебе лучше использовать для этого сабклассинг АПИ...
на сайте есть прекрасный пример resize (не помню чей он), который демонстрирует остановку ресайза формы на заданных параметрах.
и ничего не мерцает
Номер ответа: 3
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #3
Добавлено: 19.08.04 08:53
Можно сабклассировать окно и перехватывать WM_SIZE
WM_SIZE
The WM_SIZE message is sent to a window after its size has changed.
A window receives this message through its WindowProc function.
LRESULT CALLBACK WindowProc(
HWND hwnd, // handle to window
UINT uMsg, // WM_SIZE
WPARAM wParam, // resizing flag
LPARAM lParam // client area
);
Parameters
wParam
Specifies the type of resizing requested. This parameter can be one of the following values. Value Meaning
SIZE_MAXHIDE Message is sent to all pop-up windows when some other window is maximized.
SIZE_MAXIMIZED The window has been maximized.
SIZE_MAXSHOW Message is sent to all pop-up windows when some other window has been restored to its former size.
SIZE_MINIMIZED The window has been minimized.
SIZE_RESTORED The window has been resized, but neither the SIZE_MINIMIZED nor SIZE_MAXIMIZED value applies.
lParam
The low-order word of lParam specifies the new width of the client area.
The high-order word of lParam specifies the new height of the client area.
Return Values
If an application processes this message, it should return zero.
В Lparam изменяй поддерживай один из параметров константой (или два, если вообще менять не нужно, но это глупо). Затем передавай управление стандартной процедуре обработки.
Номер ответа: 4
Автор ответа:
Kodo
Разработчик Offline Client
ICQ: 293048085
Вопросов: 37
Ответов: 457
Профиль | | #4
Добавлено: 19.08.04 10:08
Ребята! Человек первый раз в жизни видит что такое Api а вы ему сразу сабклассинг... Проще быть надо! Ему небось BorderStyle хватило!
Номер ответа: 5
Автор ответа:
Lister
ICQ: 298621256
Вопросов: 57
Ответов: 304
Профиль | | #5
Добавлено: 19.08.04 13:12
А откуда ты знаешь что он АПИ первый раз видит?..
А даже если и так - пусть учится
Номер ответа: 6
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #6
Добавлено: 19.08.04 13:17
Правильнее всего перехватывать WM_GETMINMAXINFO и модифицировать структуру, определяющую минимальные и максимальные размеры окна
Номер ответа: 7
Автор ответа:
Kodo
Разработчик Offline Client
ICQ: 293048085
Вопросов: 37
Ответов: 457
Профиль | | #7
Добавлено: 19.08.04 23:09
>А откуда ты знаешь что он АПИ первый раз видит?..
http://www.vbnet.ru/forum/show.aspx?id=52031
Ответ №3
Номер ответа: 8
Автор ответа:
Kodo
Разработчик Offline Client
ICQ: 293048085
Вопросов: 37
Ответов: 457
Профиль | | #8
Добавлено: 19.08.04 23:10
>Правильнее всего перехватывать WM_GETMINMAXINFO и модифицировать структуру, определяющую минимальные и максимальные размеры окна
Обясни плиз, самому интересно... Пригодится в жизни!
Номер ответа: 9
Автор ответа:
Lister
ICQ: 298621256
Вопросов: 57
Ответов: 304
Профиль | | #9
Добавлено: 19.08.04 23:15
То Kodo:
Понял )) Вопрос исчерпан
Действительно АПИ он видит в первый раз
На VBNET есть хороший пример, там как раз WM_GETMINMAXINFO используется.
resize называется
Номер ответа: 10
Автор ответа:
Tigre
Вопросов: 34
Ответов: 63
Профиль | | #10
Добавлено: 20.08.04 00:35
Всем спасибо. Только непонял зачем здесь нужен API. Гараздо проше вариант предложеный KODO с BorderStyle и ничего там не мерцает.