我们项目是已经做了一个基类 CMyDialog 派生自CDialog 扩展了一些函数 成员变量 还有一些虚函数 消息响应函数什么的 然后程序中的所有对话框都派生自CMYDialog ,现在要做一个新的对话框基类CMYDialog2 想派生自CMYDialog 以前的功能统统保持不变 只是多了一个函数 这种情况我该怎么做? 主要是不知道虚函数 消息响应函数什么的该怎么处理 我只是 class CMYDialog2 :public CMYDialog
{
public:
CMYDialog2();
virtual ~CMYDialog2();
void new fun(); // 新函数
}; 就可以么? CMYDialog 里的重载函数 virtual BOOL PreTranslateMessage(MSG* pMsg); 怎么处理 消息响应函数 afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); 怎么处理
{
public:
CMYDialog2();
virtual ~CMYDialog2();
void new fun(); // 新函数
}; 就可以么? CMYDialog 里的重载函数 virtual BOOL PreTranslateMessage(MSG* pMsg); 怎么处理 消息响应函数 afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); 怎么处理
消息响应函数需要写一些宏,如DECLARE_DYNCREATE之类。建议你用向导生成派生类,比如先选择继承自CDialog,这样各种宏就生成好了。你再把CDialog替换成CMYDialog。
哦 好的 谢谢我试试啊 还有个问题 我用VS2005 看他们以前的代码
文件头有这些东西
#if !defined(AFX_CMYDIALOG_H__196000BC_53D7_11D5_857A_009027A61635__INCLUDED_)
#define AFX_CMYDIALOG_H__196000BC_53D7_11D5_857A_009027A61635__INCLUDED_#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000可我用类向导生成的 什么也没有
只有这个
#pragma once这东西是不无所谓啊
#pragma once,和那些define 两个是一样的目的。