如何改变cfiledialog的显示大小

怎么改变cfiledialog的显示大小
从cfiledialog继承了一个类,在oninitdialog中用setwindowpos改变了窗口大小,但是改变的是整个界面的大小,我现在想做的是改变中间选项框的大小,就是包含可选择的所有文件的框,请高手多多指教啊,感激不尽



------解决方案--------------------
GetDlgItem获取控件句柄, 然后setwindowpos
------解决方案--------------------
CFileDialog的构造函数没有给我们提供改变大小的参数,但是可以再获取这个窗口句柄之后,SetWindowPos/MoveWindow改变大小
------解决方案--------------------
在对话框类里用GetDlgItem(ID)获得该控件的句柄,让后用MoveWindow()去改变控件大小。

GetDlgItem(IDC_BUTTON1)->MoveWindow(CRect rc);

IDC_BUTTON1为你控件的ID。

------解决方案--------------------
弹颜色对话框CColorDialog,指定大小和初始弹出的位置以及窗口标题
CColorDialog dlg;
dlg.m_cc.Flags |= CC_ENABLEHOOK;
dlg.m_cc.lpfnHook = CdlgHook;
dlg.m_cc.lCustData = (LONG_PTR)pRect;

UINT_PTR CALLBACK CdlgHook( HWND hdlg,UINT uiMsg,WPARAM /*wParam*/, LPARAM lParam)
{
if(uiMsg == WM_INITDIALOG)
{
CHOOSECOLOR *pcc = (CHOOSECOLOR*)lParam;
CRect *rc = (CRect*)pcc->lCustData;
if(rc)
{
SetWindowPos(hdlg,HWND_TOP,rc->right,rc->bottom,
0,0,SWP_NOZORDER|SWP_NOSIZE);
}
SetWindowText(hdlg, _T("请选择一种颜色"));
delete rc;
}
return 0;
}
-----------------------
CFileDialog也有个成员变量m_ofn,这个结构体也有类似的结构 LPOFNHOOKPROC lpfnHook; 
仅供楼主参考。