Win32 状态栏用法

Posted 初吻给了烟灬

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Win32 状态栏用法相关的知识,希望对你有一定的参考价值。

WIN32 状态控件用法

1.创建控件

状态栏类名:

STATUSCLASSNAME

 

#define STATUSCLASSNAMEW        L"msctls_statusbar32"

 

 

 

 

 

控件样式

dwStyle:   指定控件风格

 

SBARS_SIZEGRIP:    状态栏控件将包含状态栏右端的大小调整手柄.定位手柄类似于尺寸边界

                                     它是一个矩形区域,用户可以单击并拖动以调整父窗口的大小.

SBT_TOOLTIPS:         使用这种风格来启用工具提示.

SBARS_TOOLTIPS:    与SBT_TOOLTIPS相同

 

当然还有窗口类的样式:WS_CHILD|WS_VIBLE

 

创建代码

 

LRESULT CALLBACK MyWindowProc(HWND hWnd, UINT uMsg,

         WPARAM wParam, LPARAM lParam)

{

         switch (uMsg)

         {

     case WM_CREATE:

         {

                   HWND hStatus = ::CreateWindowEx(0, STATUSCLASSNAME,

                            NULL,

                            WS_CHILD | WS_VISIBLE,

                            0, 0, 0, 0,

                            hWnd,

                            (HMENU)1001,

                            ((LPCREATESTRUCT)lParam)->hInstance,

                            0);

         }break;

     }

         return DefWindowProc(hWnd, uMsg, wParam, lParam);

}

 

控件消息

SB_ISSIMPLE:            检查状态栏控件以确定它是否处于简单模式.

SB_SETBKCOLOR:    设置状态栏中的背景颜色

SB_SETICON:            设置状态中显示的图标

SB_SETMINHEIGHT:设置状态窗口绘图区域的最小高度.

SB_SETPARTS:           设置状态窗口中分格数量,(以x坐标定位格子的位置)

SB_SETTIPTEXT:       为状态栏设置工具提示文本,必须有SBT_TOOLTIPS样式创建的提示工具提示

SB_SETUNICODEFORMAT:设置显示Unicode字符格式标志.

SB_SIMPLE:               指定状态窗口是显示简单文本还是显示由前一个SB_SETPARTS消息设置的所有窗口部分.

 

示例:

//将状态栏分为三段,最后为-1表示把剩余部分填满

         int array[3] = { 100,200,-1 };

         SendMessage(hStatus, SB_SETPARTS, 3, (LPARAM)array);

 

         //设置状态栏文本

         SendMessage(hStatus, SB_SETTEXT, 0, (LPARAM)TEXT("第一部分"));

         SendMessage(hStatus, SB_SETTEXT, 1, (LPARAM)TEXT("第二部分"));

         SendMessage(hStatus, SB_SETTEXT, 2, (LPARAM)TEXT("第三部分"));

        

         //发送WM_SIZE消息用于重绘控件窗口

         SendMessage(hStatus, WM_SIZE, 0, 0);

 

 

自适应窗口大小

在父窗口的WM_SIZE消息中给控件发送些消息,让其重绘

case WM_SIZE:

                   SendMessage(hStatus, WM_SIZE, 0, 0);

                   break;

 

通知消息

 

 

 

以上是关于Win32 状态栏用法的主要内容,如果未能解决你的问题,请参考以下文章

在win32程序中添加工具栏状态栏

win10状态栏右键菜单变成黑色怎么破

Android 状态栏透明

android为啥透明不能全屏?如何将状态栏给隐藏起来。

android 透明状态栏是怎样实现的

iOS 获取状态栏、导航栏、tabBar高度