用 FileOpenDialog 打开的文件选择窗口可以让他显示在屏幕中央吗?
用 FileOpenDialog 打开的文件选择窗口可以让他显示在屏幕中央吗? 本帖最后由 lixiaolong 于 2011-2-27 12:47 编辑我只会移动窗口
$message = "按下 Ctrl 或 Shift 键选择多个文件."
$Timer = DllCallbackRegister("Timer", "int", "hwnd;uint;uint;dword")
$TimerDLL = DllCall("user32.dll", "uint", "SetTimer", "hwnd", 0, "uint", 0, "int", 0, "ptr", DllCallbackGetPtr($Timer))
$var = FileOpenDialog($message, @WindowsDir & "\", "Images (*.jpg;*.bmp)", 1 + 4)
If @error Then
MsgBox(4096, "", "没有选择文件")
Else
$var = StringReplace($var, "|", @CRLF)
MsgBox(4096, "", "你选择了: " & $var)
EndIf
Func Timer($hWnd, $uiMsg, $idEvent, $dwTime)
If $idEvent = $TimerDLL Then
If WinExists($message) Then _WinCenter($message)
EndIf
EndFunc ;==>Timer
_WinCenter()
http://www.autoitx.com/forum.php?mod=viewthread&tid=21358&highlight=%D2%C6%B6%AF%B4%B0%BF%DA%B5%BD%CF%D4%CA%BE%C6%F7%D6%D0%D0%C4 原来还能这样啊,学习了 我只会移动窗口
_WinCenter()
lixiaolong 发表于 2011-2-27 12:46 http://www.autoitx.com/images/common/back.gif
这是一种办法,但会产生闪屏,效果不好。
我想应该是可以直接显示在屏幕中央的才对,OFFICE里面就是这样的。
查了些资料也得不出一个所以然。 本帖最后由 happytc 于 2011-2-27 23:17 编辑
因office也是利用了父句柄的原因
#include <WinAPI.au3>
$hGui = GUICreate("")
GUISetState(@SW_HIDE, $hGui)
_WinAPI_GetOpenFileName("Open File", "All File (*.*)", ".", @ScriptName, "", 1, BitOR($OFN_ALLOWMULTISELECT, $OFN_EXPLORER), 0, $hGui)
;FileOpenDialog("open",@ScriptDir,"all file(*.*)", 4,"",$hGui)
页:
[1]