![]() |
|
Модераторы: Poseidon |
![]()
|
|
| Metalex |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 635 Регистрация: 22.10.2008 Где: Украина-ZPсity Репутация: нет Всего: нет |
Как создать кнопку, чувствительную к действиям мыши? То есть при приближении мыши к кнопке она должна отовигатся в противоположную сторону, а если все-таки догнать кнопку и нажать на нее, высветить сообщение о победе.
И еще вопрос: как сделать, чтоб обьект (не обязательно кнопка) лип к краям формы при перетягивании его мышью к краю формы? Добавлено через 16 секунд Благодарю всем за помощь!! -------------------- Don't let the system get you down. |
|||
|
||||
| ИванМ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1260 Регистрация: 19.6.2006 Где: СПб Репутация: 13 Всего: 23 |
обрабатывай событие формы MouseMove
|
|||
|
||||
| Metalex |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 635 Регистрация: 22.10.2008 Где: Украина-ZPсity Репутация: нет Всего: нет |
ИванМ, это я понял
И еще, забыл написать, с помощью трекбара нужно реализовать регулировку "скорости ускользания" -------------------- Don't let the system get you down. |
|||
|
||||
| ИванМ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1260 Регистрация: 19.6.2006 Где: СПб Репутация: 13 Всего: 23 |
||||
|
||||
| Metalex |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 635 Регистрация: 22.10.2008 Где: Украина-ZPсity Репутация: нет Всего: нет |
-------------------- Don't let the system get you down. |
|||
|
||||
| ИванМ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1260 Регистрация: 19.6.2006 Где: СПб Репутация: 13 Всего: 23 |
||||
|
||||
| Metalex |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 635 Регистрация: 22.10.2008 Где: Украина-ZPсity Репутация: нет Всего: нет |
ИванМ, да, при нажатии и удерживании.
-------------------- Don't let the system get you down. |
|||
|
||||
| ИванМ |
|
||||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1260 Регистрация: 19.6.2006 Где: СПб Репутация: 13 Всего: 23 |
Metalex, подключаешь пространство имен System.Runtime.InteropServices
в классе формы пишешь:
создаешь обработчик MouseDown для кнопки и в нем пишешь:
В общем, вот полностью мой код, так может будет понятнее:
|
||||||||
|
|||||||||
| Metalex |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 635 Регистрация: 22.10.2008 Где: Украина-ZPсity Репутация: нет Всего: нет |
чето на
ругается -------------------- Don't let the system get you down. |
|||
|
||||
| ИванМ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1260 Регистрация: 19.6.2006 Где: СПб Репутация: 13 Всего: 23 |
Metalex, убери вообще эту строку. Она не нужна.
|
|||
|
||||
| Metalex |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 635 Регистрация: 22.10.2008 Где: Украина-ZPсity Репутация: нет Всего: нет |
Если мне надо еще один if вставить, который будет вызыватся при перемещении кнопки, его нужно вставить сюда:
? -------------------- Don't let the system get you down. |
|||
|
||||
| ИванМ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1260 Регистрация: 19.6.2006 Где: СПб Репутация: 13 Всего: 23 |
Metalex, да, внутрь этого блока, или перед моим ифом или после него. Типа такого:
|
|||
|
||||
| Metalex |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 635 Регистрация: 22.10.2008 Где: Украина-ZPсity Репутация: нет Всего: нет |
ИванМ, а что я хоть вставляю, чтоб кнопка перемещалась? Вдруг нужно будет изменить когда-то под себя.. А даже не знаю, что оно
-------------------- Don't let the system get you down. |
|||
|
||||
| ИванМ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1260 Регистрация: 19.6.2006 Где: СПб Репутация: 13 Всего: 23 |
Чтобы кнопка переместилась нужно при ее нажатии вызвать API-функцию ReleaseCapture() и передать кнопке сообщение WM_NCLBUTTONDOWN с wparam=HT_CAPTION с помощью API-функции SendMessage.
Поскольку c# напрямую с API не работает, нужно специально добавить поддержку нужных функций с помощью атрибута DllImportAttribute с параметром ("user32.dll"). user32 - это имя библиотеки, в которой содержаться нужные нам API-функции. А атрибут DllImportAttribute содержится внутри пространства имен System.Runtime.InteropServices, поэтому его нужно подключить. Если бы ты писал на голом API, тебе бы просто потребовались 2 строчки кода в обработчике события WM_LBUTTONDOWN для класса кнопки: ReleaseCapture(); SendMessage(btnHandle, WM_NCLBUTTONDOWN, HT_CAPTION, 0); |
|||
|
||||
| Metalex |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 635 Регистрация: 22.10.2008 Где: Украина-ZPсity Репутация: нет Всего: нет |
ИванМ, благодарю!
-------------------- Don't let the system get you down. |
|||
|
||||
![]()
|
| Правила форума "Центр помощи" | |
|
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Центр помощи | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |