刚做MFC不久,有个问题问一下
一半继承CDialog的类构造函数都会如下写发:
class CCDCFDlg : public CDialog
现在我这个类要接受一个参数,我要写一个带参数的构造函数class CCDCFDlg(/*这里有个参数 是指针*/)这样还能继承CDialog吗 好像写成class CCDCFDlg(/*这里有个参数 是指针*/):CDialog会报错不写:CDialog的话有蛇什么影响?
一半继承CDialog的类构造函数都会如下写发:
class CCDCFDlg : public CDialog
现在我这个类要接受一个参数,我要写一个带参数的构造函数class CCDCFDlg(/*这里有个参数 是指针*/)这样还能继承CDialog吗 好像写成class CCDCFDlg(/*这里有个参数 是指针*/):CDialog会报错不写:CDialog的话有蛇什么影响?
解决方案 »
- socket通信的问题
- 我在基于对话框的MFC程序中,设置了一个static控件,想用来显示资源中的bitmap,并且在oninitialdlg中添加了代码,编译通过了,但总是debug中出问题,请大家看看
- 如何编程实现快速关机
- 有个问题小弟快要几个月了,快疯了,请哥哥帮忙
- 如何连接两个BSTR
- 请问 CPropertyPage是什么意思?
- 可以实地编辑WORD文档的ActiveX控件(WORD界面全在这个控件上),源码要的话快来!
- 请教!
- 请高手帮助,如何设置RADIO BUTTON 的属性;在线等待!
- 一个五子棋判断胜负的问题,请大家帮忙分析一下,谢了!
- createfile()打开串口失败,求解答
- XTreme ToolKit Pro中CXTPReportControl 是否提供单元格合并?
你继承之后,MFC已经为你添加了一个构造函数CCDCFDlg()
这时,你再重载一个有参数的版本CCDCFDlg(Type parm....)
记得在类定义中声明这个构造函数
然后再对应的cpp文件中实现这个构造函数
CCDCFDlg ((/*这里有个参数 是指针*/)这个带参数的构造函数是类的成员函数,要写在类里面的。这样写CCDCFDlg: public CDialog
{
CCDCFDlg((/*这里有个参数 是指针*/);//带参数的构造函数
CCDCFDlg();无参数的构造函数}
CCDCFD(CString str, CWnd* pParent = NULL);
把这个放到对应的cpp里
CCDCFD::CCDCFD(CString str, CWnd* pParent /*=NULL*/)
: CDialog(CCDCFD::IDD, pParent)
{
MessageBox(str);
}
再做个按钮消息响应函数
void CDlgTestDlg::OnButton1()
{
CCDCFD dlg("MyDialog");
dlg.DoModal();
}
我试过了,没问题的
比如增加一个函数或设置公开变量等!使用构造函数也可以。下面将个例子
CMeasureReportDlg从CDialog派生头文件
CMeasureReportDlg(CWnd* pParent /*=NULL*/);
CPP文件
CMeasureReportDlg::CMeasureReportDlg(CWnd* pParent /*=NULL*/)
: CDialog(CMeasureReportDlg::IDD, pParent)现在我们要修改其构造函数希望传一个对话框的高度参数
在头文件
CMeasureReportDlg(int nHeight,CWnd* pParent /*=NULL*/);
private:
int m_nHeight;//用来保存高度变量
cpp
CMeasureReportDlg::CMeasureReportDlg(int nHeight,CWnd* pParent /*=NULL*/)
: CDialog(CMeasureReportDlg::IDD, pParent)
,m_nHeight(nHeight)