Windows风格的程序经常会有StatusBar.这篇文章就简单的介绍下怎么创建并修改StatusBar里面的内容.

如图,这就是IE的StatusBar.

[WM]创建一个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是图标

 

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

 

PS:

StatusBar如果被创建在Window的Bottom的时候,那个时候Window的Rect可能不太正确,这样StatusBar可能看不见,需要把Window Move一下,减去MenuBar的高度.

具体可以看SDK下面的Sample MiniPIE

另外Windows下面StatusBar还可以点击之类的,在WM上面并没有相应的消息

:-)

相关文章:

  • 2021-08-31
  • 2022-01-16
  • 2021-11-22
  • 2021-06-21
  • 2021-12-24
  • 2021-04-11
  • 2021-07-30
猜你喜欢
  • 2021-10-05
  • 2022-12-23
  • 2021-06-01
  • 2022-12-23
  • 2021-12-16
  • 2021-08-20
  • 2022-02-10
相关资源
相似解决方案