1.加入普通的dialog类并与对应的dialogBar资源关联。
2.更改此类的继承关系
如:
class LightDlg : public CDialog
改为:
class LightDlg : public CDialogBar
注意对应的 IMPLEMENT_DYNAMIC , BEGIN_MESSAGE_MAP 等中的CDialog参数也改为CDialogBar
3.修改构造函数
形式如下:
声明:
LightDlg();
定义:
LightDlg::LightDlg()
{
}
4.修改DoDataExchange
CDialog::DoDataExchange(pDX);
改为:
CDialogBar::DoDataExchange(pDX);
5.重写初始化函数(重点)
头文件中
DECLARE_MESSAGE_MAP()上边加入声明:
afx_msg LONG OnInitDialog (UINT,LONG);
定义:
LONG LightDlg::OnInitDialog( UINT wParam, LONG lParam)
{
BOOL bRet = HandleInitDialog(wParam, lParam);
if (!UpdateData(FALSE))
{
TRACE0("Warning: UpdateData failed during dialog init./n");
}
return bRet;
}
并在BEGIN_MESSAGE_MAP(LightDlg, CDialogBar)和END_MESSAGE_MAP()之间加入消息
ON_MESSAGE(WM_INITDIALOG,OnInitDialog)
6.OK,现在在主框架类中加入自定义的LightDlg类变量并creat就可以了
如:
LightDlg MyDialogBar;
CMainFrame::OnCreate中加入creat代码:
if (!MyDialogBar.Create(this,IDD_DIALOGBAR,CBRS_RIGHT,IDD_DIALOGBAR) )
{
TRACE0("未能创建属性栏/n");
return -1; // 未能创建
}
完成。