proxy
02-04-2009, 21:34
Растолкуйте, пожалуйста, как/от чего высчитывают данны 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
почему не совпадает результат?
#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