找回密码
 加入
搜索
查看: 2645|回复: 4

[GUI管理] 用 FileOpenDialog 打开的文件选择窗口可以让他显示在屏幕中央吗?

  [复制链接]
发表于 2011-2-27 11:42:33 | 显示全部楼层 |阅读模式
用 FileOpenDialog 打开的文件选择窗口可以让他显示在屏幕中央吗?
发表于 2011-2-27 12:46:09 | 显示全部楼层
本帖最后由 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[0] Then 
        If WinExists($message) Then _WinCenter($message)
        EndIf
EndFunc   ;==>Timer


_WinCenter()
http://www.autoitx.com/forum.php ... E%C6%F7%D6%D0%D0%C4
发表于 2011-2-27 18:18:48 | 显示全部楼层
原来还能这样啊,学习了
 楼主| 发表于 2011-2-27 19:42:13 | 显示全部楼层
我只会移动窗口


_WinCenter()
lixiaolong 发表于 2011-2-27 12:46



这是一种办法,但会产生闪屏,效果不好。

我想应该是可以直接显示在屏幕中央的才对,OFFICE里面就是这样的。

查了些资料也得不出一个所以然。
发表于 2011-2-27 23:06:27 | 显示全部楼层
本帖最后由 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)
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-16 11:02 , Processed in 0.080712 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表