Windows风格的程序经常会有StatusBar.这篇文章就简单的介绍下怎么创建并修改StatusBar里面的内容.
如图,这就是IE的StatusBar.
WM里面的StatusBar跟Windows的类似,不过消息略少一些.
g_hwndStatus = CreateStatusWindow(WS_CHILD | CCS_TOP | WS_VISIBLE, L"12", //这里为StatusBar初始的WindowText hWnd, //父窗口句柄 0xE8011 ); //这个就是ID号,跟控件的那种类似
按后需要发送消息,给StatusBar说,有一个部分,每个部分都是多长:
static int statusBarPart[3]={50,100,-1}; //这里的数字是每个Part结束的坐标,-1表是占有剩下的区域 SendMessage(g_hwndStatus, SB_SETPARTS, 3, //Parts的数量 (LPARAM)statusBarPart); //Parts区域对应的int数组,如果某个区域是-1,那么他就占有剩下的区域
现在剩下的就是给各个parts图标,或者文字了.
SendMessage(g_hwndStatus,SB_SETTEXT ,0,(LPARAM)message); //SB_SETTEXT是文字 SendMessage(g_hwndStatus,SB_SETICON,1,(LPARAM)hIcon); //SB_SETICON是图标
PS:
StatusBar如果被创建在Window的Bottom的时候,那个时候Window的Rect可能不太正确,这样StatusBar可能看不见,需要把Window Move一下,减去MenuBar的高度.
具体可以看SDK下面的Sample MiniPIE
另外Windows下面StatusBar还可以点击之类的,在WM上面并没有相应的消息
:-)