现在的位置: 首页 > 自动控制 > 工业·编程 > 正文

VC通用控件编程之CStatusBar控件

2012-09-09 22:15 工业·编程 ⁄ 共 1328字 ⁄ 字号 暂无评论

(一)状态条控制的主要功能

状态条控制(Status Bar Control)比较容易理解,使用起来也比较简单。状态条是位于父窗口底部的一个水平子窗口,它可以被分成多个显示信息的小区域。其MFC中封装的CstatusBarCtrl控制类提供了应用的基本方法。

(二)状态条控制的对象结构

1、状态条控制的建立方法

CStatusBarCtrl &StatusBarCtrl 建立状态条控制对象结构;Create 建立状态条控制对象并绑定状态条控制类CstatusBarCtrl::Create的调用格式如下:

BOOL Create( DWORD dwStyle,const RECT& rect,CWnd* pParentWnd,UINT nID);

其中参数dwStyle用来确定状态条的控制风格;参数rect用来确定状态条窗口的大小和位置;参数pParentWnd用来确定状态条父窗口的指针;nID用来确定状态条控制的标识符。

状态条控制风格可以是下列值的组合:CCS_BOTTOM、CCS_NODIVIDER、CCS_NOHILITE、CCS_NOMOVEY、CCS_NOPARENTALIGN、CCS_NORESIZE和CCS_TOP等,具体内容和含义请见工具条控制中的有关部分。

2、状态条控制的类属性

状态条控制类属性包括设置给定部分显示文本SetText、取得给定部分的文本GetText、设置状态条区域划分数及其每部分的右边坐标SetParts、取得状态条区域划分数量GetParts、取得状态条的水平和垂直宽度GetBorders和取得状态条矩形区域GetRect。

(三)状态条控制的应用技巧

状态条控制除可以显示一定的帮助和提示信息外,还可以实现响应鼠标输入等功能。这里以在状态条上显示鼠标移动坐标为例,具体说明其应用技巧。

利用应用程序向导生成的程序代码中,状态条作为主窗口的子窗口,其具有一个AFX_IDW_STATUS _BAR标识符,通过它调用函数GetDescendantWindow()和AfxGetMainWnd(),就可以取得状态条窗口的指针。由于基于文档的应用程序在建立时就具有状态条区域,所以只要利用类向导简单地加入鼠标移动消息处理功能函数和下述函数代码,就可以实现这一功能:

Void CTestView::OnMouseMove(UINT nFlags,Cpoint point)

{

CclientDC dc(this);//建立设备文本

OnPrepareDC(&dc,NULL);//设备映射处理

dc.DPtoLP(&point);//鼠标指针转换

char text[128];

CstatusBar *pStatus=(CstatusBar *)AfxGetApp()->m_pMainWnd->

GetDescendanWindow(AFX_IDW_STATUS_BAR);//取得窗口指针

If(pStatus){//如果存在显示鼠标坐标

Sprintf(text,”X坐标=%4d,Y坐标=%4d”,point.x,point.y);

pStatus->SetPaneText(0,text);}

CscrollView::OnMouseMove(nFlags,point);

}

给我留言

留言无头像?