![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Почему не совпадает результат: WinGetPos и WM_MOVE? |
|
[решено] Почему не совпадает результат: WinGetPos и WM_MOVE?
|
Старожил Сообщения: 460 |
Растолкуйте, пожалуйста, как/от чего высчитывают данны 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 |
|