[]怎么不用mfc向导,自己写一个基于对话框的MFC程序
[求助]如何不用mfc向导,自己写一个基于对话框的MFC程序。
有的书中介绍了如何不用向导建立一个主框架窗口(非SDI)的MFC程序,如何不用向导建立一个基于对话框的MFC程序呢?或者说我想知道自写MFC对话框程序的方法。
最好有代码参考,提供思路也可!
(如果问题解决,一定加分!)
------解决方案--------------------
加入头文件<afxwin.h>
从CDialog继承一个自己的对话框类,再从CWinApp类继承一个自己的应用程序类,在你的APP类创建并显示窗口就行了~~
------解决方案--------------------
既然你使用的是摸态对话框,必须给它一个对话框资源。
------解决方案--------------------
自己定义一个CDialog的子类,调用CDialog构造函数时给出对话框资源ID。程序中构造一个类的实例,用DoModal或者Create、ShowWindow加消息循环来显示。
代码可以参考VC自动生成的MFC项目。
------解决方案--------------------
以下代码测试OK
有的书中介绍了如何不用向导建立一个主框架窗口(非SDI)的MFC程序,如何不用向导建立一个基于对话框的MFC程序呢?或者说我想知道自写MFC对话框程序的方法。
最好有代码参考,提供思路也可!
(如果问题解决,一定加分!)
------解决方案--------------------
加入头文件<afxwin.h>
从CDialog继承一个自己的对话框类,再从CWinApp类继承一个自己的应用程序类,在你的APP类创建并显示窗口就行了~~
------解决方案--------------------
既然你使用的是摸态对话框,必须给它一个对话框资源。
------解决方案--------------------
自己定义一个CDialog的子类,调用CDialog构造函数时给出对话框资源ID。程序中构造一个类的实例,用DoModal或者Create、ShowWindow加消息循环来显示。
代码可以参考VC自动生成的MFC项目。
------解决方案--------------------
以下代码测试OK
- C/C++ code
#include <afxwin.h> #include "resource.h" class CLgyDlgWnd:public CDialog { public: CLgyDlgWnd(CWnd* pParent = NULL); // 标准构造函数 enum { IDD = IDD_DIALOG1 }; protected: BOOL OnInitDialog(); afx_msg void OnPaint(); afx_msg void OnLButtonDown(UINT nFlags,CPoint point);//定义鼠标右键点击消息处理函数 DECLARE_MESSAGE_MAP(); }; //消息映射表 BEGIN_MESSAGE_MAP(CLgyDlgWnd,CDialog) ON_WM_LBUTTONDOWN() ON_WM_PAINT() END_MESSAGE_MAP() CLgyDlgWnd::CLgyDlgWnd(CWnd* pParent /*=NULL*/) : CDialog(CLgyDlgWnd::IDD, pParent) { } BOOL CLgyDlgWnd::OnInitDialog() { CDialog::OnInitDialog(); return TRUE; } void CLgyDlgWnd::OnPaint() { CDialog::OnPaint(); } void CLgyDlgWnd::OnLButtonDown(UINT nFlags,CPoint point) { ::MessageBox(GetSafeHwnd(),"您刚才按下了鼠标左键!","提示信息",MB_OK |MB_ICONINFORMATION); } class CLgyDlgApp:public CWinApp { public: BOOL InitInstance(); }; BOOL CLgyDlgApp::InitInstance() { CLgyDlgWnd dlg; m_pMainWnd=&dlg; dlg.DoModal(); return FALSE; } CLgyDlgApp LgyDlgApp;