如何指定message box的坐标
默认在中间显示如何指定msgbox的坐标呢? 用 GUICreate 画一个,不就可以任意指定坐标啦!:face (1): 用 GUICreate 画一个,不就可以任意指定坐标啦!
水木子 发表于 2010-3-12 21:30 http://www.autoitx.com/images/common/back.gif
-_-!! GUI自己画的不算.... -_-!! GUI自己画的不算....
gapkiller 发表于 2010-3-12 22:17 http://www.autoitx.com/images/common/back.gif
要算、要算!嘿嘿!:face (1):
说真的,除了自己写函数以外,暂时没有想到其他办法。 美女,弹出来再移动算不算,哈 美女,弹出来再移动算不算,哈
afan 发表于 2010-3-12 22:28 http://www.autoitx.com/images/common/back.gif
呵呵!这个办法我也想到了,估计也不算吧! 要是我就自己画了:face (22): 内置MsgBox函数实际是调用了User32.dll中的MessageBoxW函数,这个API的原型中没有哪个参数是指定坐标用的。自己创建一个GUI界面,或调用Timer函数在弹出之后再移动,只能这样解决。 我是想说, 应该还是有办法来控制坐标的.
如果连续弹出两个msgbox, 那么第二个msgbox是不会重叠在一起的.
这就说明还是有个什么东西在操纵着这个窗口坐标
或许是注册表里面的什么,或许是别的什么 我是想说, 应该还是有办法来控制坐标的.
如果连续弹出两个msgbox, 那么第二个msgbox是不会重叠在一起的.
...
gapkiller 发表于 2010-3-13 08:25 http://www.autoitx.com/images/common/back.gif
楼主的专研精神值得学习啊!:face (27): 楼主的专研精神值得学习啊!
水木子 发表于 2010-3-13 10:01 http://www.autoitx.com/images/common/back.gif
果酱果酱了:face (27): 移动的方法还行 本帖最后由 afan 于 2010-3-13 16:18 编辑
乾坤大挪移
;Global $Guititle = 'Msgbox test'
$Form1 = GUICreate($Guititle, 220, 100, 80, 100)
$Button1 = GUICtrlCreateButton('test', 150, 35, 60, 20)
GUISetState()
While 1
Switch GUIGetMsg()
Case -3
Exit
Case $Button1
MsgboxM(0, 'test', '我将跟随主窗口~')
MsgboxM(0, 'test', '我将定位到500,200的位置', 500, 200)
EndSwitch
WEnd
Func MsgboxM($flag, $title, $text, $x = '', $y = '')
Global $__title = $title, $__text = $text, $__x = $x, $__y = $y
Global $Timer = DllCallbackRegister('Timer', 'int', 'hwnd;uint;uint;dword')
Global $TimerDLL = DllCall('user32.dll', 'uint', 'SetTimer', 'hwnd', 0, 'uint', _
0, 'int', 1, 'ptr', DllCallbackGetPtr($Timer))
Sleep(3)
MsgBox($flag, $title, $text)
EndFunc ;==>MsgboxM
Func Timer($hwnd, $uiMsg, $idEvent, $dwTime)
If $idEvent = $TimerDLL Then
$Wpos = WinGetPos($Guititle)
Local $x = $Wpos + 60, $y = $Wpos + 10
If StringIsDigit($__x) And StringIsDigit($__y) Then Local $x = $__x, $y = $__y
If WinMove($__title, $__text, $x, $y) <> 0 Then
DllClose($TimerDLL)
DllCallbackFree($Timer)
EndIf
EndIf
EndFunc ;==>Timer 乾坤大挪移
;
afan 发表于 2010-3-13 14:51 http://www.autoitx.com/images/common/back.gif
能否解释一下
If $idEvent = $TimerDLL Then...
是什么意思. 就是指前面创建的'time'回调函数第3个参数符合Dllcall的返回值…
只知大概意思~
如果要用专业术语解释那得P版出面… :face (32):