![]() |
|
Модераторы: gambit, Partizan |
![]()
|
|
| sig84 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 19.2.2007 Репутация: нет Всего: нет |
Люди
Подскажите, как сделать, чтобы окна не перемещались, а также не сворачивались и не открывались на весь экран (в том числе при двойном клике на кепшене) Заранее благодарен |
|||
|
||||
| marcusmae |
|
|||
![]() stravaganza ![]() ![]() Профиль Группа: Участник Сообщений: 874 Регистрация: 26.3.2006 Репутация: 3 Всего: 39 |
sig84, для этого нужно зарегистрировать для формы обработчики соответствующих оконных событий. Сделать это можно двумя способами.
Во-первых, можно работать напрямую с событиями Win API. Для этого override-ить функцию WndProc в Вашей форме, а в её теле по-своему обрабатывать возникшие события. Причём, каждое событие идентифициовать 16-ричным кодом, например :
Коды сообщений можно найти в интернете или в справочнике. Среди них должен быть и соответствующий двойному клику по хедеру. Во-вторых можно не напрягать мозг и воспользоваться встроенными событиями самой формы : Resize, ResizeBegin, ResizeEnd. Но здесь возможности несколько по-скромнее... Это сообщение отредактировал(а) marcusmae - 3.4.2007, 22:01 -------------------- ἀπὸ μηχανῆς θεός |
|||
|
||||
| Naum |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 743 Регистрация: 7.9.2005 Где: Саратов, ул. Поса дского, 298 Репутация: 1 Всего: 15 |
Насчет "не сворачивалась и не разворачивалась на весь экран" просто ставим у формы свойство FormBorderStyle в FixedToolWindow.
-------------------- У нас всего два праздника Новый год и ТЯПница. |
|||
|
||||
| sig84 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 19.2.2007 Репутация: нет Всего: нет |
marcusmae,
Спасибо за идею, покапаюсь - посмотрю Naum, FormBorderStyle = FixedToolWindow не спасает от двойного клика по кепшену |
|||
|
||||
| Naum |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 743 Регистрация: 7.9.2005 Где: Саратов, ул. Поса дского, 298 Репутация: 1 Всего: 15 |
Точно, а я и не знал. -------------------- У нас всего два праздника Новый год и ТЯПница. |
|||
|
||||
| XavierElf |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 200 Регистрация: 24.1.2007 Где: г. Тверь Репутация: 1 Всего: 1 |
А если аналогично через WndProc перехватывать WM_SYSCOMMAND с параметром SC_MAXIMIZE и SC_MINIMIZE? Может так поможет?
--------------------
Даешь открытые исходники! |
|||
|
||||
| sig84 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 19.2.2007 Репутация: нет Всего: нет |
Спасибо всем, похоже разобрался с двойным кликом по кепшену и ресайзом:
Правда работает не во всех случаях (например, если форма изначально имеет свойство WindowState = Maximized), к тому же это как-то криво смотрится. Остается нерешенным вопрос с перетаскиванием формы. |
|||
|
||||
| sig84 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 19.2.2007 Репутация: нет Всего: нет |
"Кривое" отключение перетаскивания
Всем спасибо! |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Разработка Windows Forms | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |