怎么改变cfiledialog的显示大小 从cfiledialog继承了一个类,在oninitdialog中用setwindowpos改变了窗口大小,但是改变的是整个界面的大小,我现在想做的是改变中间选项框的大小,就是包含可选择的所有文件的框,请高手多多指教啊,感激不尽 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 GetDlgItem获取控件句柄, 然后setwindowpos CFileDialog的构造函数没有给我们提供改变大小的参数,但是可以再获取这个窗口句柄之后,SetWindowPos/MoveWindow改变大小 在对话框类里用GetDlgItem(ID)获得该控件的句柄,让后用MoveWindow()去改变控件大小。GetDlgItem(IDC_BUTTON1)->MoveWindow(CRect rc);IDC_BUTTON1为你控件的ID。 我用spy++查看中间那个控件的ID是00000001,那么,我是不是应该在cfiledialog类的派生类的oninitdialog中用GetDlgItem(1)->MoveWindow(CRect rc);可是参考这个文章http://msdn.microsoft.com/zh-cn/magazine/cc301466(en-us).aspx应该用GetParent()->GetDlgItem(lst2)->GetDlgItem(1)->MoveWindow(CRect rc);可是此时获取的GetParent()->GetDlgItem(lst2)为空,必须要在对话框初始化之后才有值,而oninitdialog是在domodal后才调用的,而domodal是模态对话框,在它显示的时候不能做其他操作,那么也就不可以movewindow()很纠结可能我的表达不清楚,总之就是多多指教,多多帮忙啦,谢各位啦 弹颜色对话框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; 仅供楼主参考。 如何适时监控一个另一个程序窗体上的某个文本框的Text属性改变? 高分请教:无法加载资源 in DLL 按钮贴图时,怎么把图标的四个角设置成为透明? 继续疑惑的日期差问题 急救的问题啊 求有关COM方面的新经典书籍名?? 高手快来帮忙!!! 谁有入门的入侵检测系统资料? 关于打开文件的目录定位 怪事,怪事 怎么读取MIB? vs能开发纯dos程序吗
可是参考这个文章
http://msdn.microsoft.com/zh-cn/magazine/cc301466(en-us).aspx
应该用
GetParent()->GetDlgItem(lst2)->GetDlgItem(1)->MoveWindow(CRect rc);
可是此时获取的GetParent()->GetDlgItem(lst2)为空,必须要在对话框初始化之后才有值,而oninitdialog是在domodal后才调用的,而domodal是模态对话框,在它显示的时候不能做其他操作,那么也就不可以movewindow()
很纠结
可能我的表达不清楚,总之就是多多指教,多多帮忙啦,谢各位啦
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;
仅供楼主参考。