在CFileDialog对话框中添加控件

在CFileDialog对话框中添加控件

ID:37739271

大小:44.50 KB

页数:12页

时间:2019-05-30

在CFileDialog对话框中添加控件_第1页
在CFileDialog对话框中添加控件_第2页
在CFileDialog对话框中添加控件_第3页
在CFileDialog对话框中添加控件_第4页
在CFileDialog对话框中添加控件_第5页
资源描述:

《在CFileDialog对话框中添加控件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、在CFileDialog对话框中添加控件关键字:CFileDialog扩展类,OFNHookProc需求描述:昨天遇到一个用户需求,在CFileDialog对话框(SAVE)中加入一个Check,一个Edit,一个Spin控件,dlg.Domodal()==IDOK返回时要同时获得Edit控件中的数据.实现方法:如果只需要控制控件,用方法一即可,但如果需要获取数据,则只能用方法二。我最终用的就是方法二.方法一:首先查找MSDN关于CFileDialog扩展的实现描述,上网查到实现预览图片式的CFILEDIALOG的例子。

2、按照其思路从CFileDialog派生了一个新的类CFileDialogEX.在类中添加以下代码#defineWM_CHECKZOOMINWM_USER+1856public:   BOOLbZoomIn;   UINTnMul;//[1~100] //前置声明---------------BOOLNEARCALLBACKHandleNotify(HWNDhDlg,LPOFNOTIFYpofn);UINT_PTRCALLBACKOFNHookProc(HWNDhDlg,UINTuMsg,WPARAMwParam,LPAR

3、AMlParam);//CFileDialogExIMPLEMENT_DYNAMIC(CFileDialogEx,CFileDialog)CFileDialogEx::CFileDialogEx(BOOLbOpenFileDialog,LPCTSTRlpszDefExt,LPCTSTRlpszFileName,       DWORDdwFlags,LPCTSTRlpszFilter,CWnd*pParentWnd):       CFileDialog(bOpenFileDialog,lpszDefExt,lpszFi

4、leName,dwFlags,lpszFilter,pParentWnd){   //这个四个常用标识位   m_ofn.Flags

5、= OFN_ENABLETEMPLATE

6、OFN_HIDEREADONLY

7、OFN_EXPLORER; //OFN_EXPLORER

8、OFN_ENABLEHOOK   m_ofn.lpstrTitle  = _T("高级保存对话框");   m_ofn.hInstance=AfxGetInstanceHandle();   m_ofn.lpstrFilter = _T("*.bmp*.

9、BMP所有文件*.*");   m_ofn.lpTemplateName=MAKEINTRESOURCE(IDD_FILEDIALOG_EX);   m_ofn.lpfnHook= (LPOFNHOOKPROC)OFNHookProc;   } //HookfunctionfortheCommDlg//在这里处理我们感兴趣的消息,想要哪个,截哪个!UINT_PTRCALLBACKOFNHookProc(HWNDhDlg,UINTuMsg,WPARAMwParam,LPARAMlParam){   switch

10、(uMsg)   {   caseWM_INITDIALOG:  //初始化对话框上的控件       if(SendDlgItemMessage(hDlg,IDC_CHECK_ZOOMIN,BM_GETCHECK,0,0)==BST_UNCHECKED)       {                        ::EnableWindow(GetDlgItem(hDlg,IDC_EDIT_ZOOMNUM),FALSE);           ::EnableWindow(GetDlgItem(hDlg,IDC_S

11、PIN_ZOOMNUM),FALSE);           ::SetWindowText(GetDlgItem(hDlg,IDC_EDIT_ZOOMNUM),_T("1"));           //ShowWindow(button,SW_HIDE);         }       break;   caseWM_DESTROY:   //消毁对话框       {           LPOPENFILENAMElpOFN=(LPOPENFILENAME)GetWindowLong(hDlg,DWL_USER

12、);       }       break;   caseWM_COMMAND:  //这里处理,IDC_CHECK_ZOOMIN命令       {          if((HIWORD(wParam)==BN_CLICKED)&&(LOWORD(wParam)==IDC_CHECK_ZOOMIN))     

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

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

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