收藏 分销(赏)

在VC--中定制CFileDialog.doc

上传人:仙人****88 文档编号:11739641 上传时间:2025-08-11 格式:DOC 页数:4 大小:34KB 下载积分:10 金币
下载 相关 举报
在VC--中定制CFileDialog.doc_第1页
第1页 / 共4页
在VC--中定制CFileDialog.doc_第2页
第2页 / 共4页


点击查看更多>>
资源描述
在VC++中定制CFileDialog MFC为我们提供了OFileDialog的简单易用,但毕竟“千篇一律,没有性格”,在实际应用中往往需 要具有个性特色的用户界面和个性化的文件对话框。 要定制文件对话框,就必须获得对文件对话框中各个控件的控制。本文将通过一个简单的例子介绍 控制文件对话框中控件的方法。 把文件对话框的高度比一般情况扩大150个像素,并修改它的标题。 通过classwizard生成一个CFileDialog的派生类CCoolFileDialog,然后编辑CoolFileDialog.cpp 中处理WM_INITDIALOG的OnInitDialog函数。 在indnde.CPP的开头必须加入#CoolFileDialog<dlgs.h> BOOL CoolFileDialog::OnInitDialog() //iExtraSize将按照你所要的确定对话框的最终尺寸 const UINT iExtraSize=150; //要控制的文件对话框中的控件的个数 const UINT nControls=8; //获得指向父对话框的指针 CWnd*wndDlg=GetParent(); //获得对话框的尺寸 RECT Rect; wndDlg->GetWindowRect(&Rect); //修改对话框的尺寸 wndDlg->GetWindowRect(&Rect); //修改对话框的尺寸 wndDlg->SetWindowPos(NULL,0,0, Rect.right-Rect.left, Rect.bottom-Rect.top+iExtraSize, SWP_NOMOVE); //控件的ID在<dlgs.h>中定义 UINT Controls[nControls]={stc3,stc2,//两个label控件 edt1,cmb1,//edit控件和 //drop-down box控件 IDOK,IDCANCEL, chx1,//check按钮 lst1//list控件 }; //获得对文件对话框中各个控件的控制,并把它们移到新的位置 for (int i=0;i<nControls ; i++) { CWnd *wndCtrl =wndDlg->GetDlgItem(Controls[i]); wndCtrl->GetWindowRect(&Rect); wndDlg->ScreenToClient(&Rect); //根据对话框的新的尺寸移动各控件。 if (Controls[i]!=lst1) wndCtrl->SetWindowPos(NULL, Rect.left,Rect.top+iExtraSize, 0,0,SWP_NOSIZE); else//文件列表框只改变尺寸,而不移动位置 wndCtrl->SetWindowPos(NULL,0,0, Rect.right-Rect.left, Rect.bottom-Rect.top+iExtraSize, SWP_NOMOVE); //设置对话框窗口的标题 wndDlg->SetWindowText(“打开——(大家好):-)”); //Remember to call the baseclass, return CFileDialog::OnInitDialog(); } 程序中必须注意的问题是: (1)如果想改变对话框中控件的尺寸、外观等属性,不能直接使用GetDlgItem()函数,因为这些控 件属于被继承的父对话框,必须通过CWnd *wndDlg=GetParent()获得父对话框的指针来实现。 (2)在头文件〈dlgs.h〉中定义的各控件的ID为: stc3,stc2 两个label控件(“文件名”和“文件类型”); edt1,cmb1 edit控件和drop-down box控件; IDOK,IDCANCEL “确定”和“取消”按钮; chx1 “以只读方式打开”check按钮; lst1 文件列表框。 其他控件的ID也都定义在〈dlgs.h〉中。 通过wndDlg->GetDlgItem(ID)的方法获得对文件对话框中控件的控制,为文件对话框的定制提供 了相当大的自由空间。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服