selectdirectory窗口的位置(50分)

  • 主题发起人 主题发起人 ajj
  • 开始时间 开始时间
A

ajj

Unregistered / Unconfirmed
GUEST, unregistred user!
各位大侠,我用Selectdirectory及shellabout等函数时,它的弹出窗口总在屏幕的右下角,<br>FileCtrl好象还不能更改,请问这怎么处理。
 
自己直接做一个Selectdirectory,传入hwnd参数即可。<br>function SelectDirectory(handle:hwnd;const Caption: string; const Root: WideString;out Directory: string): Boolean;<br>var<br>&nbsp; lpbi:_browseinfo;<br>&nbsp; buf:array [0..MAX_PATH] of char;<br>&nbsp; id:ishellfolder;<br>&nbsp; eaten,att:cardinal;<br>&nbsp; rt:pitemidlist;<br>&nbsp; initdir:pwidechar;<br>begin<br>&nbsp; result:=false;<br>&nbsp; lpbi.hwndOwner:=handle;<br>&nbsp; lpbi.lpfn:=nil;<br>&nbsp; lpbi.lpszTitle:=pchar(caption);<br>&nbsp; lpbi.ulFlags:=BIF_RETURNONLYFSDIRS;<br>&nbsp; SHGetDesktopFolder(id);<br>&nbsp; initdir:=pwchar(root);<br>&nbsp; id.ParseDisplayName(0,nil,initdir,eaten,rt,att);<br>&nbsp; lpbi.pidlRoot:=rt;<br>&nbsp; getmem(lpbi.pszDisplayName,MAX_PATH);<br>&nbsp; try<br>&nbsp; &nbsp;result:=shgetpathfromidlist(shbrowseforfolder(lpbi),buf);<br>&nbsp; except<br>&nbsp; &nbsp;freemem(lpbi.pszDisplayName);<br>&nbsp; end;<br>&nbsp; if result then directory:=buf;<br>end;<br>
 
多谢指导,但这么作与直接调用SHGetDesktopFolder已经没有什么区别了,<br>我是想问问针对delphi封装的selectdirectory有没有办法让它显示的窗口位置在屏幕<br>中内?
 
SelectDirectory有什么好的,界面是英文的,看起来和主程序的界面一点也不协调。<br>除非你的主界面都是英文的,呵呵。<br>SelectDirectory显示的是一个TSelectDirDlg,这也是一个用VCL画的窗体,你也可以<br>自己画一个呀。
 
to Sachow:<br>&nbsp;selectdirectory有两种形式,分别是:<br>function SelectDirectory(const Caption: string; <br>&nbsp; &nbsp; const Root: WideString; out Directory: string): Boolean; overload;<br>和<br>function SelectDirectory(var Directory: string; <br>&nbsp; &nbsp; Options: TSelectDirOpts; HelpCtx: Longint): Boolean; overload;<br><br>第一种形式就是程序中常用的格式,是中文的呀。第二种没什么意思。<br><br>to Kingron:<br>&nbsp;我试过了你写的函数,在Delphi中编译后,打开的窗口还是会在屏幕的右下角的。<br>请你试试。 &nbsp;8)<br><br>
 
&gt;&gt;我试过了你写的函数,在Delphi中编译后,打开的窗口还是会在屏幕的右下角的。<br>请你试试。<br><br>我测试过的,没有问题!你传入hwnd应该是调用这个函数的窗体Handle!
 
Sorry, 我太粗心了,只看了后一种。:-&gt;
 
我还是没试成功,不过多谢了两位,Kingron我一会给你加分。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
I
回复
0
查看
772
import
I
后退
顶部