Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Активная часть окна

Ответить
Настройки темы
[решено] Активная часть окна

Аватара для morgan1991

Старожил


Сообщения: 398
Благодарности: 13

Профиль | Сайт | Отправить PM | Цитировать


Здравствуйте!
Есть окно со стилем $WS_POPUPWINDOW на Autoit 3.2.8.1
Как сделать чтобы в за определённую часть окна его можно было двигать мышкой?

-------
Хочу научиться писать драйвера на с++


Отправлено: 23:03, 04-03-2009

 

Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить 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

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community

Это сообщение посчитали полезным следующие участники:

Отправлено: 18:32, 05-03-2009 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для beve

Старожил


Сообщения: 307
Благодарности: 137

Профиль | Отправить PM | Цитировать


Цитата morgan1991:
Как сделать чтобы в за определённую часть окна его можно было двигать мышкой? »
Вот есть скрипт CreatOR-a:
Код: Выделить весь код
#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


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата beve:
есть скрипт CreatOR-a »
Есть, но в вопросе указано:

Цитата morgan1991:
Как сделать чтобы в за определённую часть окна его можно было двигать мышкой? »
Т.е не повсюду .

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 19:34, 05-03-2009 | #4


Аватара для morgan1991

Старожил


Сообщения: 398
Благодарности: 13

Профиль | Сайт | Отправить PM | Цитировать


Спасибо огромное, в очередной раз помогли! ОСЗоне форевер!!!

-------
Хочу научиться писать драйвера на с++


Отправлено: 23:09, 05-03-2009 | #5



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Активная часть окна

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Звук - [решено] Ваше мнение активная акустика - Microlab H-300 Santyc Прочее железо 5 22-02-2009 14:15
[решено] Глюк - часть DOS программ грузится в полном экране, часть в окне mrsao Microsoft Windows 2000/XP 3 26-05-2006 21:12




 
Переход