如何使用CDialogbar
发现用VC做界面的确是烦的可以。不过性能倒是不错的。
这里的CDialogBar,一开始的时候让我误解了好一阵子,叫这么个名,让我认定他是用来放CDialog的。就好像把dialog当成一个control一样往上堆。心想这玩意好啊,有了它tab也可以不要了,propertysheet也可以不要了。。
虽然找遍它的member都没有发现有类似tab的那种add的功能。。
我是属于醒悟的很晚的了。MSDN里那句原话忘记了,大概意思就是CDialogBar是一种用来放置Control的派生自controlBar的东西。
我的理解是这样的:它比dialog多了停靠功能,比toolbar多了能放置复杂控件例如树啊列表啊这类东西的功能。
言归正传,现在开始来说它怎么使用:
1.在资源里添加一个cdialogbar.注意如果添加cdialog是不可以的(为什么我就不知道了)。
2.编辑成想要的模样,利用向导对它生成一个类。向导里是不能直接派生自CDialogBar的,所以派生CDialog
3.下面开始更改这两个自动生成的文件,让它变成一个CDialogBar吧.
首先把所有Cdialog改成CDialogBar,注意构造函数派生父类参数不同,也需要改
然后把virtual BOOL OnInitDialog();改成:afx_msg LONG OnInitDialog ( UINT, LONG );
在消息映射处添加:ON_MESSAGE(WM_INITDIALOG, OnInitDialog )
BEGIN_MESSAGE_MAP(CMyDlgBar, CDialogBar)
ON_MESSAGE(WM_INITDIALOG, OnInitDialog )
END_MESSAGE_MAP()
把OnInitDialog函数改成如下:
{
BOOL bRet = HandleInitDialog(wParam, lParam);
if (!UpdateData(FALSE))//这里是用来调用doDataExchange()
{
TRACE0("Warning: UpdateData failed during dialog init./n");
}
return bRet;
}
然后,在使用的时候,直接create就可以了。
m_myDlgBar.Create(this, IDD_DLGBAR1, CBRS_LEFT,IDD_DLGBAR1)
转自:http://qoitaaxb.spaces.live.com/?_c11_BlogPart_pagedir=Last&_c11_BlogPart_BlogPart=blogview&_c=BlogPart