状态条SetPaneInfo 函数及 SetPaneText 函数

来源:互联网 发布:雪梨淘宝店铺名称 编辑:程序博客网 时间:2024/06/06 22:28

在创建状态条的代码后,用状态条的成员函数SetPaneInfo来设置每个窗格的ID、风格和宽度(单位似对话框,为1/4英文字母),

其函数原型为

 void SetPaneInfo( int nIndex, UINT nID, UINT nStyle, int cxWidth ); 

其中nStyle可取值:

 SBPS_NOBORDERS   窗格周围无三维边框

SBPS_POPOUT       窗格突出显示 

SBPS_DISABLED     不画文本

SBPS_STRETCH     伸缩窗格以填满空间(每个状态条中只能有一个窗格可以被设置成伸缩的) 

SBPS_NORMAL      不伸缩、无边框、不凸显 

还可以用状态条类的另一成员函数SetPaneText在窗格中显示文本信息。

如在CMainFrame::OnCreate函数尾部的return语句之前添加如下代码段: 

m_wndStatus丨Bar.SetPaneInfo(0, prompt, S丨BPS_STRETCH,0); // 提示

m_wndStatus丨Bar.SetPaneInfo(1, xName, S丨BPS_NOBORDERS, 8); // "x:"

m_wndStatus丨Bar.SetPaneText(xName, L"x:"); 

m_wndStatus丨Bar.SetPaneInfo(2, xVal, S丨BPS_NORMAL, 24); // x值

 m_wndStatus丨Bar.SetPaneInfo(3, yName, S丨BPS_NOBORDERS, 8); // "y:"

 m_wndStatus丨Bar.SetPaneText(yName, L"y:"); 

m_wndStatus丨Bar.SetPaneInfo(4, yVal, S丨BPS_NORMAL, 24); // y值

在应用程序中(如鼠标移动的消息响应函数OnMouseMove内)用函数SetPaneText动态修改窗格中的文本串。

如 

void CStudentView::OnMouseMove(UINT nFlags, CPoint point) 

// TODO: 在此添加消息处理程序代码和/或调用默认值 wchar_t buf[20];

CMainFrame *pFrmWnd = (CMainFrame*)GetTopLevelFrame(); 

_itow_s(point.x, buf, 20, 10); pFrmWnd->m_wndStatus丨Bar.SetPaneText(pFrmWnd->xVal, buf); 

_itow_s(point.y, buf, 20, 10);

 pFrmWnd->m_wndStatus丨Bar.SetPaneText(pFrmWnd->yVal, buf); CView::OnMouseMove(nFlags, point);

 } 

可用状态条类的成员函数SetPaneText在状态条中显示提示信息。

例如 m_wndStatus丨Bar.SetPaneText(0, L"Message line for first pane"); 

其函数原型为 BOOL SetPaneText( int nIndex, LPCTSTR lpszNewText, BOOL bUpdate = TRUE );

 其中的nIndex可取不同的值,对应于不同的窗格。

复制搜索
原创粉丝点击