Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 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-сайт: sharpc.livejournal.com
 Профиль | | #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 и ничего там не мерцает.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам