在VC6中使用CDialogBar类
来源:互联网 发布:windows hello 不可用 编辑:程序博客网 时间:2024/04/30 16:03
在VC6中可以在资源中新建DialogBar的对话框资源,但在类向导中创建新类时却不见CDialogBar的踪影。好在MSDN上有手动添加的方法可以参考。
1.在新建类(CMyDiagBar)时,将基类选为CDialog
2.在MyDiagBar.cpp中修改消息映射定义
BEGIN_MESSAGE_MAP(CMyDiagBar, CDialog) //原始
BEGIN_MESSAGE_MAP(CMyDiagBar, CDialogBar) //修改后
3.在MyDiagBar.h中修改
class CMyDiagBar : public CDialog //原始
class CMyDiagBar : public CDialogBar //修改后
4.修改构造函数
原始:
CMyDiagBar(CWnd* pParent = NULL); //MyDiagBar.h中
CMyDiagBar::CMyDiagBar(CWnd* pParent /*=NULL*/)
:CDialog(CMyDiagBar::IDD, pParent) //MyDiagBar.cpp中
修改后:
CMyDiagBar(); //MyDiagBar.h中
CMyDiagBar::CMyDiagBar() //MyDiagBar.cpp中
5.在MyDiagBar.cpp中修改成员函数DoDataExchange(...)函数体
CDialog::DoDataExchange(pDX); //原始
CDialogBar::DoDataExchange(pDX); //修改后
至此,新类已经可以编译无误了。特例是:如果你要新类响应WM_INITDIALOG消息的话,需要继续如下的修改
1.为新类添加WM_INITDIALOG消息的处理函数
2.在MyDiagBar.h中修改消息函数声明
原始:
// Generated message map functions
//{{AFX_MSG(CMyDiagBar)
virtual BOOL OnInitDialog(); //删除此行
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
修改后:
// Generated message map functions
//{{AFX_MSG(CMyDiagBar)
//}}AFX_MSG
afx_msg LONG OnInitDialog ( UINT, LONG ); //添加此行
DECLARE_MESSAGE_MAP()
3.在MyDiagBar.cpp中修改消息映射定义
原始:
BEGIN_MESSAGE_MAP(CMyDiagBar, CDialogBar)
//{{AFX_MSG_MAP(CMyDiagBar)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
修改后:
BEGIN_MESSAGE_MAP(CMyDiagBar, CDialogBar)
//{{AFX_MSG_MAP(CMyDiagBar)
//}}AFX_MSG_MAP
ON_MESSAGE(WM_INITDIALOG, OnInitDialog ) //添加此行
END_MESSAGE_MAP()
4.在MyDiagBar.cpp中修改OnInitDialog(...)函数
原始:
BOOL CMyDiagBar::OnInitDialog()
{
CDialogBar::OnInitDialog();
return TRUE;
}
修改后:
LONG CMyDiagBar::OnInitDialog ( UINT wParam, LONG lParam)
{
BOOL bRet = HandleInitDialog(wParam, lParam);
if (!UpdateData(FALSE))
{
TRACE0("Warning: UpdateData failed during dialog init./n");
}
return bRet;
}
到此为止,新类已经完全修改为CDialogBar的继承类了。
- 在VC6中使用CDialogBar类
- CDialogBar在VC6.0中的基本使用
- 在VC6中使用GDI+
- 在 VC6 中使用 GdiPlus
- 在VC6中使用GDI+
- 在VC6中使用GDI+
- 在 VC6 中使用 GdiPlus
- CDialogBar 使用
- CDialogBar 使用
- 在 VC6 中使用 GdiPlus-使用
- 在 VC6 中使用 GdiPlus-使用
- 在 VC6 中使用 GdiPlus(一)
- 在 VC6 中使用 GdiPlus(二)
- 在 VC6 中使用 GdiPlus(三)
- 在 VC6 中使用 GdiPlus(四)
- 在 VC6 中使用 GdiPlus(五)
- 在VC6.0中使用GDI+
- 在 VC6 中使用 GdiPlus-安装
- MSF for CMMI Process Improvement 5.0学习之CMMI背景信息
- 查看服务器性能
- c++引用
- ASP.NET页面事件:顺序与回传详解
- NTP 协议
- 在VC6中使用CDialogBar类
- C++ using namespace std 详解
- testtt
- Web Spam相关实验室与学者
- 对于HBase的理解
- sln------------------unrecognized version
- Response.Write后页面刷新字体变大
- javascript高级程序设计 -- 读书笔记(三)
- Java 基础数据类型