首页 > Windows开发 > 详细

Win32 状态栏用法

时间:2021-05-23 09:22:25      阅读:24      评论:0      收藏:0      [点我收藏+]

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 状态栏用法

原文:https://www.cnblogs.com/greenleaf1976/p/14800282.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!