WEB开发网
开发学院软件开发VC MFC程序员的WTL指南(4)工具条与状态条 阅读

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()显示每个窗格的字符串,否则窗格就被置空。

上一页  4 5 6 7 8 9 10  下一页

Tags:MFC 程序员 WTL

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接