|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Активная часть окна |
|
[решено] Активная часть окна
|
Старожил Сообщения: 398 |
Профиль | Сайт | Отправить PM | Цитировать Здравствуйте!
Есть окно со стилем $WS_POPUPWINDOW на Autoit 3.2.8.1 Как сделать чтобы в за определённую часть окна его можно было двигать мышкой? |
|
------- Отправлено: 23:03, 04-03-2009 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Создаём Label, и присваиваем ему стиль $GUI_WS_EX_PARENTDRAG:
#include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include <StaticConstants.au3> $GUI = GUICreate("Test Script", 300, 200, -1, -1, $WS_POPUPWINDOW) GUICtrlCreateLabel("Drag me", 0, 10, 300, 20, $SS_CENTER, $GUI_WS_EX_PARENTDRAG) GUICtrlSetFont(-1, 12, 800) $Close_Button = GUICtrlCreateButton("Close", 20, 170, 60, 20) GUISetState(@SW_SHOW, $GUI) While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE, $Close_Button Exit EndSwitch WEnd |
------- Отправлено: 18:32, 05-03-2009 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 307
|
Профиль | Отправить PM | Цитировать Цитата morgan1991:
#include <WindowsConstants.au3> Global $GUI = GuiCreate("Drag using any place on GUI", -1, -1, -1, -1, $WS_POPUPWINDOW) $Close_Button = GUICtrlCreateButton("Close", 5, 375, 60, 20) GUIRegisterMsg($WM_NCHITTEST, "WM_NCHITTEST") GUISetState() While 1 $Msg = GUIGetMsg() Switch $Msg Case $Close_Button Exit EndSwitch WEnd Func WM_NCHITTEST($hWnd, $iMsg, $iwParam, $ilParam) If $hWnd = $GUI And $iMsg = $WM_NCHITTEST Then Local $id = _API_DefWindowProc($hWnd, $iMsg, $iwParam, $ilParam) If $id = 1 Then Return 2 Else Return $id EndIf EndIf EndFunc Func _API_DefWindowProc($hWnd, $iMsg, $iwParam, $ilParam) Local $aResult $aResult = DllCall("User32.dll", "int", "DefWindowProc", "hwnd", $hWnd, "int", $iMsg, "int", $iwParam, "int", $ilParam) Return $aResult[0] EndFunc Еще есть код Diamond-а: #include <GuiConstants.au3> #include <WindowsConstants.au3> Global Const $WM_LBUTTONDOWN = 0x0201 $HWnd = GUICreate("DRAG_COMMAND",240,180,-1,-1,$WS_POPUPWINDOW) $Close_Button = GUICtrlCreateButton("Close", 5, 160, 60, 20) GUIRegisterMsg($WM_LBUTTONDOWN,"DRAG_COMMAND") GUISetState() While 1 $msg = GUIGetMsg(0) Switch $msg Case $GUI_EVENT_CLOSE,$Close_Button Exit EndSwitch WEnd Func DRAG_COMMAND($HWnd,$command,$wParam,$lParam) If BitAND(WinGetState($HWnd),32) Then Return DllCall("user32.dll","long","SendMessage","hwnd",$HWnd,"int",$WM_SYSCOMMAND,"int",0xF009,"int",0) EndFunc |
|
------- Последний раз редактировалось beve, 05-03-2009 в 20:17. Отправлено: 19:27, 05-03-2009 | #3 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать |
------- Отправлено: 19:34, 05-03-2009 | #4 |
Старожил Сообщения: 398
|
Профиль | Сайт | Отправить PM | Цитировать Спасибо огромное, в очередной раз помогли! ОСЗоне форевер!!!
|
|
------- Отправлено: 23:09, 05-03-2009 | #5 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Звук - [решено] Ваше мнение активная акустика - Microlab H-300 | Santyc | Прочее железо | 5 | 22-02-2009 14:15 | |
[решено] Глюк - часть DOS программ грузится в полном экране, часть в окне | mrsao | Microsoft Windows 2000/XP | 3 | 26-05-2006 21:12 |
|