在VC++中定制CFileDialog

在VC++中定制CFileDialog

ID:42659503

大小:34.00 KB

页数:4页

时间:2019-09-19

在VC++中定制CFileDialog_第1页
在VC++中定制CFileDialog_第2页
在VC++中定制CFileDialog_第3页
在VC++中定制CFileDialog_第4页
资源描述:

《在VC++中定制CFileDialog》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、在VC++中定制CFileDialogMFC为我们提供了OFileDialog的简单易用,但毕竟“千篇一律,没有性格”,在实际应用中往往需要具有个性特色的用户界面和个性化的文件对话框。要定制文件对话框,就必须获得对文件对话框中各个控件的控制。本文将通过一个简单的例子介绍控制文件对话框中控件的方法。把文件对话框的高度比一般情况扩大150个像素,并修改它的标题。通过classwizard生成一个CFileDialog的派生类CCoolFileDialog,然后编辑CoolFileDialog.cpp中处理WM_INI

2、TDIALOG的OnInitDialog函数。在indnde.CPP的开头必须加入#CoolFileDialog<dlgs.h>BOOLCoolFileDialog::OnInitDialog()//iExtraSize将按照你所要的确定对话框的最终尺寸constUINTiExtraSize=150;//要控制的文件对话框中的控件的个数constUINTnControls=8;//获得指向父对话框的指针CWnd*wndDlg=GetParent();//获得对话框的尺寸RECTRect;wndDlg->GetWi

3、ndowRect(&Rect);//修改对话框的尺寸wndDlg->GetWindowRect(&Rect);//修改对话框的尺寸wndDlg->SetWindowPos(NULL,0,0,Rect.right-Rect.left,Rect.bottom-Rect.top+iExtraSize,SWP_NOMOVE);//控件的ID在<dlgs.h>中定义UINTControls[nControls]={stc3,stc2,//两个label控件edt1,cmb1,//edit控件和//drop-downbox控

4、件IDOK,IDCANCEL,chx1,//check按钮lst1//list控件};//获得对文件对话框中各个控件的控制,并把它们移到新的位置for(inti=0;i<nControls;i++){CWnd*wndCtrl=wndDlg->GetDlgItem(Controls[i]);wndCtrl->GetWindowRect(&Rect);wndDlg->ScreenToClient(&Rect);//根据对话框的新的尺寸移动各控件。if(Controls[i]!=lst1)wndCtrl->SetWin

5、dowPos(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(“打开——(大家好):-)”);//Remembertocallthebaseclass,ret

6、urnCFileDialog::OnInitDialog();}程序中必须注意的问题是:(1)如果想改变对话框中控件的尺寸、外观等属性,不能直接使用GetDlgItem()函数,因为这些控件属于被继承的父对话框,必须通过CWnd*wndDlg=GetParent()获得父对话框的指针来实现。(2)在头文件〈dlgs.h〉中定义的各控件的ID为:stc3,stc2两个label控件(“文件名”和“文件类型”);edt1,cmb1edit控件和drop-downbox控件;IDOK,IDCANCEL“确定”和“取消”

7、按钮;chx1“以只读方式打开”check按钮;lst1文件列表框。其他控件的ID也都定义在〈dlgs.h〉中。通过wndDlg->GetDlgItem(ID)的方法获得对文件对话框中控件的控制,为文件对话框的定制提供了相当大的自由空间。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。