卓为VC——界面/窗口——MFC控件 状态条的简单介绍及使用 CStatusBar

来源:百度文库 编辑:神马文学网 时间:2024/04/27 22:18:40
1、CStatusBar在MFC中类继承关系:
CObject
CCmdTarget
CWnd
CControlBar
CStatusBar
2、CStatusBar成员函数介绍:
virtual BOOL Create(CWnd* pParentWnd,DWORD dwStyle = WS_CHILD | WS_VISIBLE | CBRS_BOTTOM,UINT nID = AFX_IDW_STATUS_BAR);
函数用途:创建一个CStatusBar并将其与CStatusBar对象关联;
参数说明:pParentWnd:指向CStatusBar的父窗口(Windows窗口);
dwStyle:CStatusBar的类型,CBRS_TOP:将Bar放在框架的顶部,CBRS_BOTTOM:将其放在框架的底部。CBRS_NOALIGN:当父窗口改变时,不重型调整Bar;
nID:toolbar的子窗口ID;
返回值:成功返回非零,否则返回零;
2、BOOL SetIndicators(const UINT* lpIDArray,int nIDCount);
函数用途:加载lpIDArray中的ID所对应的字符串资源,并将ID所对应的文本保存在字符串资源中;
参数说明:lpIDArray:ID队列指针
nIDCount:队列中元素的个数;
返回值:成功返回非零,否则返回零;
3、BOOL SetPaneText(int nIndex,LPCTSTR lpszNewText,BOOL bUpdate = TRUE);
函数用途:将CStatustBar中的长方块设置成lpszNewText所指向的内容;
参数说明:nIndex:长方块的索引号
lpszNewText:需要加载的内容;
bUpdate:等于TRUE时,当加载了新的字符内容后,将长方块设置为无效。无效使得窗口自动刷行,那么新内容就被显示在界面上了。
4、void GetItemRect(int nIndex,LPRECT lpRect) const;
函数用途:将nIndex所在的位置的矩形坐标拷贝到lpRect中。
参数说明:nIndex:长方块的标识;
lpRect:指向Rect结构的指针,用来保存获得到的矩形坐标;
返回值:无
注意:坐标是以象素为单位的,原点在左上角。
5、void GetPaneInfo(int nIndex,UINT& nID,UINT& nStyle,int& cxWidth) const;
函数用途:获得Pane的相关信息:ID,Style,宽度。
参数说明:nIndex:需要获得的Pane的索引
nID:nIndex所对应Pane的ID
nStyle:nIndex对应的Pane的类型;
cxWidth:nIndex对应的Pane的宽度;
返回值:无
6、void SetPaneInfo(int nIndex,UINT nID,UINT nStyle,int cxWidth);
函数说明:设置Pane的相关信息;
参数说明:nIndex:需要设置的Pane的索引;
其余和5相同;
返回值:无
7、void SetPaneStyle(int nIndex,UINT nStyle);
函数说明:设置Pane的类型
参数说明:nIndex:需要设置的Pane的索引
nStyle:类型;
返回值:无
8、UINT GetPaneStyle(int nIndex) const;
函数说明:获得Pane的类型
参数说明:nIndex:需要获得的Pane的索引
返回值:无
使用CStatusBar:
1、修改MainFrame中定义的静态变量indicators[]中成员为自己定义的ID,这里数组的下表就是函数中使用iIndex,
2、创建一个新MFC类,从CStatusBar类继承,可以在其中增加对CStatusBar的操作函数;
3、将CMainFrame中定义的CStatusBars  m_wndStatusBar;改为自己增加类的对象,例如CMyStatusBar m_wndStatusBar;
例子:
1、修改indicators[]如下:
static UINT indicators[] =
{
ID_SEPARATOR,           // 状态行指示器
ID_INDICATOR_CAPS,
ID_INDICATOR_NUM,
ID_INDICATOR_SCRL,
ID_SEPARATOR,
ID_SEPARATOR,
};
2、创建新类,在其中增加相应的处理函数,本例中没有增加其他的处理函数;
3、对菜单添加CMainFrame命令响应,函数如下:
void CMainFrame::OnModifybar()
{
// TODO: 在此添加命令处理程序代码
m_wndStatusBar.SetPaneText(2,"ab");
}
4、运行点击刚才添加命令响应的菜单,查看状态条的第三个Pane会显示“ab”;
卓为VC——界面/窗口——MFC控件 状态条的简单介绍及使用 CStatusBar 卓为VC——界面/窗口——MFC控件 状态条的简单介绍及使用 CStatusBar MFC控件 状态条的简单介绍及使用 CStatusBar MFC控件使用总结——CListCtrl - mlidify的专栏 - CSDN博客 VC++中MFC窗口对象的清除 VC知识库文章 - MFC程序员的WTL指南: Part III - 工具条与状态条 如何让基于对话框的MFC程序启动后自动隐藏对话框 VC/MFC / 界面 vb.net入门——分组控件:CheckedListBox控件的使用 vb.net入门——DomainUpDown 控件的使用 vb.net入门——ComboBox 控件的使用 vb.net入门——ToolBar 控件的使用 vb.net入门——DomainUpDown 控件的使用 vb.net入门——PictureBox控件的使用 vb.net入门——ListBox控件的使用 2如何让基于对话框的MFC程序启动后自动隐藏对话框 VC/MFC / 界面 - 社区 community.csdn.net VC知识库文章 - MFC程序员的WTL指南: Part I - ATL 界面类 VC知识库文章 - MFC程序员的WTL指南: Part II - WTL 界面基类 如何联系CMainFrame和CView各自的成员变量? VC/MFC / 界面 如何联系CMainFrame和CView各自的成员变量? VC/MFC / 界面 - CS... VC知识库文章 - MFC程序员的WTL指南: Part VII - 分隔窗口 VC知识库文章 - MFC程序员的WTL指南: Part IV - 对话框与控件 VC++ 的MFC 和ATL 及COM 是什么? MFC中使用RICHEDIT控件常见问题 转)VC随笔——切分窗口和多视图_且歌且行的空间