在对话框中加入状态栏
在VC6.0中,一般都会使用StatusBar控件来设置状态栏信息,如:m_wndStatusBar.SetPanelText(...),但是在VC2005中,基于对话框的程序似乎不能直接使用StatusBar控件(?偶是新手,望指教),但可以通过创建状态栏窗口来实现。
状态栏的实现与工具条的实现相比非常简单,只需在CreateStatusWindow()函数中对其参数进行设置即可实现:
HWND hStatusWindow=CreateStatusWindow(WS_CHILD|WS_VISIBLE|WS_BORDER,
TEXT("状态栏"),//显示在状态栏上的信息
hDlg, //父窗口句柄
IDS_STATUS); //预定义的资源ID
此时创建的状态栏只是一个位于对话框底部的长条,如需要将其分割为几部分可以在数组中设定好分割点的X坐标,然后通过向状态栏发送SB_SETPARTS消息即可,该消息的wParam参数指定了要将状态栏分割为几部分,lParam参数指定了各分割点的坐标值:
int pint[4]={110,250,300,-1};//110,250,300设定间隔
::SendMessage(hStatusWindow,SB_SETPARTS,4,(LPARAM)pint);
如需向分割后的状态栏内填写信息,可以通过hStatusWindow向状态条发送消息SB_SETTEXT来完成,该消息的两个参数分别用来标识在第几个窗格显示和待显示的信息内容:
::SendMessage(hStatusWindow,SB_SETTEXT,1,(LPARAM)TEXT("信息一"));