首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

"浏览文件夹"对话框的显示有关问题

2012-03-06 
浏览文件夹对话框的显示问题procedureTForm1.Button1Click(Sender:TObject)varbi:TBrowseInfopidl:pIt

"浏览文件夹"对话框的显示问题
procedure   TForm1.Button1Click(Sender:   TObject);
var
    bi:   TBrowseInfo;
    pidl:   pItemIdList;
    strpath,   displayname:   string;
begin
    SetLength   (displayname,   100);
    bi.hwndOwner   :=   Handle;
    bi.pidlRoot   :=   nil;
    bi.pszDisplayName   :=   pChar   (displayname);
    bi.lpszTitle   :=   '请选择文件夹 '#13#10#10 '一般是在**下 ';
    bi.ulFlags   :=   $0008;
    bi.lpfn   :=   nil;
    bi.lParam   :=   0;
    bi.iImage   :=   0;
    pidl   :=   SHBrowseForFolder(bi);
    SetLength   (strPath,   100);
    ShGetPathFromIdList   (pidl,   PChar(strPath));
end;

上面代码运行后bi.lpszTitle的显示有问题,   换行后的 "一般是在**下 "已经被List挡住了.   请问,怎样才能正常显示   ??   可不可以把那List移下一点   ,这样就可以了?


[解决办法]
10分啊
关键代码
bi.lpfn := nil;
改为
bi.lpfn := @BrowseCallbackProc;

BrowseCallbackProc过程
function BrowseCallbackProc(hwnd: HWND; uMsg: UINT; lParam: LPARAM; lpData: LPARAM): Integer; stdcall;
begin
if uMsg=BFFM_INITIALIZED then
SetWindowPos(GetDlgItem(hwnd,2),0,230,90,0,0,SWP_NOZORDER or SWP_NOSIZE);
//你要查下文字框的ID,修改这里GetDlgItem(hwnd,2)
end if
Result := 0
end;

热点排行