baidu

[WM]创建一个StatusBar(入门级)

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上面并没有相应的消息

:-)

posted @ 2010-05-05 15:38  egmkang  阅读(2449)  评论(6编辑  收藏  举报