MFC程序员的WTL指南(4)工具条与状态条
2006-07-22 22:03:37 来源:WEB开发网核心提示: 多窗格的状态条WTL另有一个状态条类实现多窗格的状态条,与MFC的默认的状态条一样有CAPS,MFC程序员的WTL指南(4)工具条与状态条(9),LOCK和NUM LOCK指示器,这个类就是CMultiPaneStatusBarCtrl,如果是true,SetPanes()显示每个窗格的字
多窗格的状态条
WTL另有一个状态条类实现多窗格的状态条,与MFC的默认的状态条一样有CAPS,LOCK和NUM LOCK指示器,这个类就是CMultiPaneStatusBarCtrl,在WTLClock3例子工程中演示了如何使用这个类。这个类支持有限的UI更新,当弹出式菜单被显示时有“Default”属性的窗格会延伸到整个状态条的宽度用于显示菜单的掠过式帮助。
第一步就是在CMainFrame中声明一个CMultiPaneStatusBarCtrl类型的成员变量:
class CMainFrame : public ...
{
//...
protected:
CMultiPaneStatusBarCtrl m_wndStatusBar;
};
接着在OnCreate()中创建状态条并这只UI更新:
m_hWndStatusBar = m_wndStatusBar.Create ( *this );
UIAddStatusBar ( m_hWndStatusBar );
就像CreateSimpleStatusBar()函数做得那样,我们也将状态条的句柄存放在m_hWndStatusBar中。
下一步就是调用CMultiPaneStatusBarCtrl::SetPanes()函数建立窗格:
BOOL SetPanes(int* pPanes, int nPanes, bool bSetText = true);
参数:
pPanes 存放窗格ID的数组 nPanes 窗格ID数组中元素的个数(译者加:就是窗格数) bSetText 如果是true,所有的窗格被立即设置文字,这一点将在下面解释。窗格ID可以是ID_DEFAULT_PANE,此ID用于创建支持掠过式帮助的窗格,窗格ID也可以是字符串资源ID。对于非默认的窗格WTL装载这个ID对应的字符串并计算宽度,并将窗格设置为相应的宽度,这和MFC使用的逻辑是一样的。
bSetText控制着窗格是否立即显示相关的字符串,如果是true,SetPanes()显示每个窗格的字符串,否则窗格就被置空。
更多精彩
赞助商链接