|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Почему не совпадает результат: WinGetPos и WM_MOVE? |
|
[решено] Почему не совпадает результат: WinGetPos и WM_MOVE?
|
Старожил Сообщения: 460 |
Профиль | Отправить PM | Цитировать Растолкуйте, пожалуйста, как/от чего высчитывают данны WinGetPos и WM_MOVE,
почему не совпадает результат? #NoTrayIcon #region: - Option Opt('GUIOnEventMode', 1) Opt('MustDeclareVars', 1) Opt('TrayIconDebug', 0) Opt('TrayIconHide', 1) #endregion #region: - Include #include <GUIConstantsEx.au3> #include <WinAPI.au3> #include <WindowsConstants.au3> #endregion #region: - Global ; Main Win Global $hMainWin Global $iMainWinWidth = 350 Global $iMainWinHeight = 345 Global $iMainWinX = -1 Global $iMainWinY = -1 Global $iMainWinApiX, $iMainWinApiY #endregion #region: - Main Win Func _MainWin_Create() $hMainWin = GUICreate('Test', $iMainWinWidth, $iMainWinHeight, $iMainWinX, $iMainWinY) GUISetState(@SW_SHOW, $hMainWin) GUISetOnEvent($GUI_EVENT_CLOSE, '_Pro_Exit') EndFunc #endregion #region: - После создания всех GUI HotKeySet('{ESC}', '_Pro_Exit') GUIRegisterMsg($WM_MOVE, 'WM_MOVE') _MainWin_Create() #endregion #region: - Sleep, Exit While 1 Sleep(10) ToolTip('WinGetPos' & @CRLF & 'X = ' & $iMainWinX & @CRLF & 'Y = ' & $iMainWinX & @CRLF & @CRLF & _ 'WinAPI' & @CRLF & 'X = ' & $iMainWinApiX & @CRLF & 'Y = ' & $iMainWinApiY, _ 10, 70) WEnd Func _Pro_Exit() Exit EndFunc #endregion #region: - GUI Register Msg Func WM_MOVE($hWnd, $Msg, $wParam, $lParam) Local $aWinPos = WinGetPos($hWnd) $iMainWinX = $aWinPos[0] $iMainWinY = $aWinPos[1] $iMainWinApiX = _WinAPI_LoWord($lParam) $iMainWinApiY = _WinAPI_HiWord($lParam) EndFunc #endregion |
|
Отправлено: 21:34, 02-04-2009 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата proxy:
Цитата:
#NoTrayIcon #region: - Option Opt('GUIOnEventMode', 1) Opt('MustDeclareVars', 1) Opt('TrayIconDebug', 0) Opt('TrayIconHide', 1) #endregion #region: - Include #include <GUIConstantsEx.au3> #include <WinAPI.au3> #include <WindowsConstants.au3> #endregion #region: - Global ; Main Win Global $hMainWin Global $iMainWinWidth = 350 Global $iMainWinHeight = 345 Global $iMainWinX = -1 Global $iMainWinY = -1 Global $iMainWinApiX, $iMainWinApiY #endregion #region: - Main Win Func _MainWin_Create() $hMainWin = GUICreate('Test', $iMainWinWidth, $iMainWinHeight, $iMainWinX, $iMainWinY) GUISetState(@SW_SHOW, $hMainWin) GUISetOnEvent($GUI_EVENT_CLOSE, '_Pro_Exit') EndFunc #endregion #region: - После создания всех GUI HotKeySet('{ESC}', '_Pro_Exit') GUIRegisterMsg($WM_MOVE, 'WM_MOVE') _MainWin_Create() #endregion #region: - Sleep, Exit While 1 Sleep(10) WEnd Func _Pro_Exit() Exit EndFunc #endregion #region: - GUI Register Msg Func WM_MOVE($hWnd, $Msg, $wParam, $lParam) Local $aWinPos = WinGetPos($hWnd) Local $aWinClientSize = WinGetClientSize($hWnd) Local $iBorder_Size = ($aWinPos[2] - $aWinClientSize[0]) / 2 Local $iCaption_Size = ($aWinPos[3] - $aWinClientSize[1]) - $iBorder_Size $iMainWinX = $aWinPos[0] $iMainWinY = $aWinPos[1] $iMainWinApiX = _WinAPI_LoWord($lParam) - $iBorder_Size $iMainWinApiY = _WinAPI_HiWord($lParam) - $iCaption_Size ToolTip('WinGetPos' & @CRLF & 'X = ' & $iMainWinX & @CRLF & 'Y = ' & $iMainWinY & @CRLF & @CRLF & _ 'WinAPI' & @CRLF & 'X = ' & $iMainWinApiX & @CRLF & 'Y = ' & $iMainWinApiY, 10, 70) EndFunc #endregion |
||
------- Отправлено: 22:49, 02-04-2009 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 460
|
Профиль | Отправить PM | Цитировать Цитата Creat0R:
думаю WinGetPos будет оптимальней. |
|
------- Отправлено: 01:42, 03-04-2009 | #3 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Как записать в переменную результат выполнения команды? | MSI | Скриптовые языки администрирования Windows | 64 | 24-12-2020 18:20 | |
[решено] Как преобразовать текстовую формулу в числовой результат | malev | AutoIt | 2 | 18-09-2009 11:09 | |
CMD/BAT - [решено] Строка результат выполнения filever.exe передать в переменную | dARKest | Скриптовые языки администрирования Windows | 3 | 07-09-2009 22:50 | |
[решено] Объединить результат mysql_fetch_array() в одну переменную | D_Master | Вебмастеру | 9 | 10-07-2009 17:23 | |
Разное - [решено] Имя папки настроек пользователя не совпадает с именем учетной записи. Почему? | truvo | Microsoft Windows 2000/XP | 1 | 08-03-2008 19:35 |
|