




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、無模式對話框和Windows通用對話框1、利用對話框編輯器創(chuàng)立一個對話框資源2、用ClassWizard來創(chuàng)立CEx07aDialog類3、添加變量到CEx07aDialog類中IDC_EDIT1- m_strEdit14、編輯CEx07aDialog.h增加視圖指針和函數(shù)原型private:CView* m_pView;public:CEx07aDialog(CView* pView);BOOL Create();5、編輯CEx07aDialog.h并在其中定義WMGOODBYE消息ID#define WM_GOODBYE WM_USER + 5 /常量WM_USER是用戶自定義消息中可利用
2、的第一個消息6、在文件CEx07aDialog.cpp中參加無模式對話框的構(gòu)造函數(shù)CEx07aDialog:CEx07aDialog(CView* pView) / modeless constructorm_pView = pView;BOOL CEx07aDialog:Create()return CDialog:Create(CEx07aDialog:IDD);8、編輯CEx07aDialog.cpp文件中的OnOK和OnCancel的單擊響應(yīng)函數(shù)void CEx07aDialog:OnCancel() / not really a message handlerif (m_pView
3、!= NULL) / modeless case - do not call base class OnCancelm_pView-PostMessage(WM_GOODBYE, IDCANCEL);else CDialog:OnCancel(); / modal casevoid CEx07aDialog:OnOK() / not really a message handlerif (m_pView != NULL) / modeless case - do not call base class OnOKUpdateData(TRUE);m_pView-PostMessage(WM_GO
4、ODBYE, IDOK);else CDialog:OnOK(); / modal caseclass CEx07aView : public CViewprivate:CEx07aDialog* m_pDlg;10、修改ex07aView.cpp文件中的CEx07aView類的構(gòu)造函數(shù)和析構(gòu)函數(shù)CEx07aView:CEx07aView()m_pDlg = new CEx07aDialog(this);11、CEx07aView:CEx07aView()delete m_pDlg; / destroys window if not already destroyed12、在ex07aView
5、.cpp文件的虛函數(shù)OnDraw中加進一些代碼void CEx07aView:OnDraw(CDC* pDC)pDC-TextOut(0, 0, Press the left mouse button here.);13、利用ClassWizard加進CEx07aView的鼠標消息處理函數(shù)。請加進WM _LBUTTONDOWN和 WM_RBOTTONDOWN消息的處理函數(shù),然后再按如下的代碼對 ex07aView.cpp文件中的這兩個消息處理函數(shù)分別進行編輯:void CEx07aView:OnLButtonDown(UINT nFlags, CPoint point) / creates t
6、he dialog if not created alreadyif (m_pDlg-GetSafeHwnd() = 0) m_pDlg-Create(); / displays the dialog windowvoid CEx07aView:OnRButtonDown(UINT nFlags, CPoint point) m_pDlg-DestroyWindow();/ no problem if window was already destroyed#include ex07aView.h#include ex07aDialog.h15、針對WM_GOODBYE消息加進自己的消息代碼在
7、ex07aView.cpp將以下語句行加在BECIN MESSAGE MAP I語句之后但必須將它加在AFX_MSG_MAP之外:BEGIN_MESSAGE_MAP(CEx07aView, CView)ON_MESSAGE(WM_GOODBYE, OnGoodbye)/AFX_MSG_MAP(CEx07aView)ON_WM_LBUTTONDOWN()ON_WM_RBUTTONDOWN()/AFX_MSG_MAPEND_MESSAGE_MAP()然后加進完整的消息處理函數(shù)LRESULT CEx07aView:OnGoodbye(WPARAM wParam, LPARAM lParam)/ me
8、ssage received in response to modeless dialog OK/ and Cancel buttonsm_pDlg-DestroyWindow();return 0L;16、在ex07aView.h中加人如下函數(shù)原型。將下面的語句加在DECLARE_MESSAGE_MAP()語句之前AFX_ MSC括弧對之外:/AFX_MSG(CEx07aView)afx_msg void OnLButtonDown(UINT nFlags, CPoint point);afx_msg void OnRButtonDown(UINT nFlags, CPoint point)
9、;/AFX_MSGafx_msg LRESULT OnGoodbye(WPARAM wParam, LPARAM lParam);DECLARE_MESSAGE_MAP()Windows通用對話框-CfileDialog1、用對話框編輯器創(chuàng)立對話框資源2、利用ClassWizard來創(chuàng)立CSpecialFileDialog類把名字更改相應(yīng)文件名為SpecFileDlg.h和SpecFileDlg.cpp手工將Base Class 改為CfileDialog在SpecFileDlg.h中將class CSpecialFileDialog : public CDialog改為class CSpec
10、ialFileDialog : public CFileDialog加人下面兩個公有數(shù)據(jù)成員public:CString m_strFilename;BOOL m_bDeleteAll;最后;編輯構(gòu)造函數(shù)聲明如下public:CSpecialFileDialog(BOOL bOpenFileDialog, / TRUE for FileOpen, FALSE for FileSaveAsLPCTSTR lpszDefExt = NULL,LPCTSTR lpszFileName = NULL,DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPRO
11、MPT,LPCTSTR lpszFilter = NULL,CWnd* pParentWnd = NULL);3、在SpecFileDlg.h中用CFileDialog替換CDialog4、在SpecFileDlg.CPP文件中CSpecialFileDialog構(gòu)造函數(shù)進行編輯CSpecialFileDialog:CSpecialFileDialog(BOOL bOpenFileDialog,LPCTSTR lpszDefExt, LPCTSTR lpszFileName, DWORD dwFlags,LPCTSTR lpszFilter, CWnd* pParentWnd): CFileD
12、ialog(bOpenFileDialog, lpszDefExt, lpszFileName,dwFlags, lpszFilter, pParentWnd)/AFX_DATA_INIT(CSpecialFileDialog)/ NOTE: the ClassWizard will add member initialization here/AFX_DATA_INITm_ofn.Flags |= OFN_ENABLETEMPLATE;m_ofn.lpTemplateName = MAKEINTRESOURCE(IDD_FILESPECIAL);m_ofn.lpstrTitle = Dele
13、te File;m_bDeleteAll = FALSE;5、在CSpecialFileDialog類中映射WM_INITDIALOG消息BOOL CSpecialFileDialog:OnInitDialog() BOOL bRet = CFileDialog:OnInitDialog();if (bRet = TRUE) GetParent()-GetDlgItem(IDOK)-SetWindowText(Delete);return bRet;6、在CSpecialFileDialog類中映射IDC_DELETE按鈕void CSpecialFileDialog:OnDelete() m
14、_bDeleteAll = TRUE;/ 0x480 is the child window ID of the File Name edit control/ (as determined by SPYXX)GetParent()-GetDlgItem(0x480)-GetWindowText(m_strFilename);GetParent()-SendMessage(WM_COMMAND, IDCANCEL);void CEx07aView:OnDraw(CDC* pDC)pDC-TextOut(0, 0, Press the left mouse button here.);8、利用C
15、lassWizard加進CEx07aView的鼠標消息處理函數(shù)。加進WM _LBUTTONDOWN消息的處理函數(shù)void CEx07bView:OnLButtonDown(UINT nFlags, CPoint point) CSpecialFileDialog dlgFile(TRUE, NULL, *.obj);CString strMessage;int nModal = dlgFile.DoModal();if (nModal = IDCANCEL) & (dlgFile.m_bDeleteAll) strMessage.Format(Are you sure you want to
16、delete all %s files?,dlgFile.m_strFilename);if (AfxMessageBox(strMessage, MB_YESNO) = IDYES) HANDLE h;WIN32_FIND_DATA fData;while(h = :FindFirstFile(dlgFile.m_strFilename, &fData) != (HANDLE) 0xFFFFFFFF) / no MFC equivalentif (:DeleteFile(fData.cFileName) = FALSE) strMessage.Format(Unable to delete file %sn,fData.cFileName);AfxMessageBox(strMessage);break;else if (nModal = IDOK) CString str
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 污水淤泥處理處置方案
- 餐飲技術(shù)股份合作餐飲文化傳承與發(fā)展協(xié)議范本
- 典型事故搶修方案
- 美德少年考試題及答案
- 水壩災(zāi)情檢測方案
- 綦江招聘考試題及答案
- 現(xiàn)代自考試題及答案
- 腫瘤的診斷與治療
- 酒店項目保護方案模板
- 內(nèi)控管理考試題及答案
- 汽車網(wǎng)銷電話邀約話術(shù)培訓
- 江蘇省南京市2024-2025學年高二(下)期末物理試卷
- 煤礦掘進試題庫及答案
- 妊娠期合并闌尾炎的護理
- 2025至2030中國焦化行業(yè)市場發(fā)展分析及發(fā)展趨勢與前景報告
- 音樂數(shù)據(jù)分析與用戶行為研究-洞察闡釋
- 2025至2030中國電子級磷酸行業(yè)市場發(fā)展分析及市場需求與投資方向報告
- 電力維修搶險方案(3篇)
- 民警心理健康課件
- 公路養(yǎng)護統(tǒng)計培訓
- 2025年河南省中考語文試卷真題(含答案)
評論
0/150
提交評論