今天在学习状态栏,出了好多的问题,这里记录下.

要创建状态栏用:CreateStatusWindow

CreateStatusWindow函数创建一个状态窗口,通常用于显示应用程序的状态。窗口通常显示在父窗口的底部,它包含指定的文本。

HWND CreateStatusWindow(

LONG,    //状态栏样式

LPCTSTR,  //第一格要显示的字符串指针

HWND,    //父窗口句柄

UINT);    //状态窗口的控制标识符

参数

【样式】

状态窗口的窗口样式。此参数必须包含WS_CHILD样式,并且还应包含WS_VISIBLE样式。

【lpszText】

指向指定第一个部分的状态文本的以空值终止的字符串的指针。

【hwndParent】

处理到父窗口。

【wID】

状态窗口的控制标识符。窗口过程使用此值来标识发送到父窗口的消息。

返回值

如果函数成功,则返回值是状态窗口的句柄。

如果函数失败,返回值为NULL。

备注

CreateStatusWindow函数调用CreateWindow函数创建窗口。它将参数传递给CreateWindow而不进行修改,并将position,width和height参数设置为默认值。

所以也可以用CreateWindow来创建,这个以后再说.

//我这是创建的全局状态栏句柄HWND hWndStatus
//还要自己定义一个状态栏的ID号
#define IDC_STATUS1 10001

在OnInitDialog()函数中添加:

hWndStatus = ::CreateStatusWindow(WS_CHILD | WS_VISIBLE | SBS_SIZEGRIP,
NULL, m_hWnd, IDC_STATUS1);  //创建状态栏

RECT rect;
GetClientRect(m_hWnd, &rect);  //获得窗口的尺寸
int nWith = rect.right / 6;    //把窗口分成六份

//这是每格的宽度,搞不明白为啥子是这个样子,头有点大,你说是x坐标值也不对,
//我这是分成三个格子,第一个格子点了4份,所以*了个4,后面二个都是占一份,
//如果是最后一格填满剩余的空间就把最后一个写成-1,数组格式就是:
//int nWiths[3]={nWitch,nWitch*2,-1};

int nWiths[3] = { nWith * 4,nWith * 5,nWith * 6 }; ::SendMessage(hWndStatus, SB_SETPARTS, 3, (LPARAM)(long)nWiths);
::MoveWindow(hWndStatus, 0, 0, 0, 0, TRUE);

基本上就是这个样子了

一片空白,没有也东西呢.

//写到状态中相应的格子中,WPARAM参数就是格式的索引值
::SendMessage(hWndStatus, SB_SETTEXT, 0, (long)TEXT("准备就绪"));
::SendMessage(hWndStatus, SB_SETTEXT, 1, (long)TEXT("系统时间"));
::SendMessage(hWndStatus, SB_SETTEXT, 2, (long)TEXT("系统时间2"));

最后在窗体WM_SIZE消息中通知状态栏自己适应窗体大小,

RECT rect;
GetClientRect(m_hWnd, &rect);
int nWith = rect.right / 6;
int sWiths[3] = { nWith * 4 ,nWith * 5,nWith * 6 }; ::SendMessage(hWndStatus, SB_SETPARTS, 3, (LPARAM)(long)sWiths);
::MoveWindow(hWndStatus, 0, 0, 0, 0, TRUE);

差不多就是这样了,其他的以后再研究吧

win32 sdk 环境下创建状态栏的更多相关文章

  1. windows环境下创建 .文件夹

    一.windows环境下创建 .文件夹 1.新建一个文件夹 2.重命名为.properties.(名字前后都加点) 二.windows环境下创建 .文件 1.上面的方法对文件同样适用 2.运行CMD, ...

  2. ROS 教程之 navigation :在 catkin 环境下创建costmap layer plugin

    在做机器人导航的时候,肯定见到过global_costmap和local_costmap.global_costmap是为了全局路径规划服务的,如从这个房间到那个房间该怎么走.local_costma ...

  3. centos环境下创建数据库和表的方法

    centos环境下创建数据库和表的方法 //查询数据库的命令: mysql> SHOW DATABASES; +--------------------+ | Database         ...

  4. 多线程编程之Windows环境下创建新线程

    转自: http://www.cnblogs.com/lgxqf/archive/2009/02/10/1387480.html 在 Win32 API 中,创建线程的基本函数是 CreateThre ...

  5. 在Windows中单机环境下创建RabbitMQ集群

    本文根据:http://www.360doc.com/content/15/0312/17/20874412_454622619.shtml整理而来 RabbitMQ具有很好的消息传递性能,同时又是开 ...

  6. 在Win32 Application 环境下实现MFC窗口的创建

    // Win32下MFC.cpp : Defines the entry point for the application.// #include "stdafx.h" clas ...

  7. Win32 SDK 编程开始, 创建窗口, 消息的处理, 消息循环

    Windows SDK 编程的一般步骤为: 1. 注册窗口类, 使用到的结构 WNDCLASSEX, 函数 RegisterClassEx. 2. 创建窗口, 函数 CreateWindowEx. 3 ...

  8. cocos2d-x v3.0各个环境下创建项目以及编译、执行官方DEMO

    摘自:https://github.com/cocos2d/cocos2d-x/ 怎样创建一个新项目 How to start a new game Download the code from co ...

  9. docker 环境下创建 overlay 网络方案

    一.环境 三台机器,其中一台安装 consul(192.168.1.21), 两台创建网络(192.168.1.32,33) 二.实现步骤 1.构建环境 1)三台机器部署docker环境 2)选择一台 ...

随机推荐

  1. 关于CAS中的ABA问题存在的隐患

    一开始觉得ABA问题确实是个问题,但是具体场景是什么呢,虽然过程改了,但是结果一样,取的值也一样 不明所以,不过呢,这里也有一个小的demo可以说明一下 该例子通过AtomicReference判断对 ...

  2. QEMU/KVM网络模式(二)——NAT

    在QEMU/KVM中,默认使用IP伪装的方式去实现NAT,而不是用SNAT或DNAT的方式. 1.安装软件包 # yum -y install bridge-utils iptables dnsmas ...

  3. 使用metadata-extractor获取照片中的位置、曝光度、大小...

    使用metadata-extractor实现获取图片中的属性信息 官网:https://drewnoakes.com/code/exif/ 简介:metadata-extractor允许您通过简单的A ...

  4. [leetcode]24. Swap Nodes in Pairs交换链表的节点

    感觉这个题后台的运行程序有问题,一开始自己想的是反转链表那道题的方法,只是隔一个节点执行一次,但是没有通过,TLE了,但是很奇怪,并没有死循环,就是最后返回的时候超时. 最后的思路就是很简单的进行交换 ...

  5. PLA-机器学习基石2

    转自:http://blog.csdn.net/u013455341/article/details/46747343 在<机器学习基石>这门课里面也进入了第一讲的内容,这次学习到的是Pe ...

  6. 3. Longest Substring Without Repeating Characters寻找不重复的最大子串

    首先弄清楚Substring和Subsequence,前者是子串,要求连续,后者是子序列,可以不连续 public int lengthOfLongestSubstring(String s) { / ...

  7. 2020年Python文章盘点,我选出了个人TOP10

    大家好,我是猫哥.2020年过得真快啊!总感觉这一年里还没有做成多少事,一眨眼就又到了写年度总结的时候了-- 去年1月1日的时候,我写了<我的 2019 年 Python 文章榜单>,简单 ...

  8. Access-Control-Allow-Headers等基础常识

    跨源资源共享 (CORS) (或通俗地译为跨域资源共享)是一种机制,该机制使用附加的 HTTP 头来告诉浏览器,准许运行在一个源上的Web应用访问位于另一不同源选定的资源. 当一个Web应用发起一个与 ...

  9. Android开发用到的几种常用设计模式浅谈(一):组合模式

    1:应用场景 Android中对组合模式的应用,可谓是泛滥成粥,随处可见,那就是View和ViewGroup类的使用.在android UI设计,几乎所有的widget和布局类都依靠这两个类.组合模式 ...

  10. Npoi XWPF Word 导出时插入图片无法显示 bug 完美解决

    一.来自客户的需求 最近客户来个新需求生成一个word 标签纸,并且需要在标签纸上插入一个logo,并且将erp 中的数据取出来自动写在文档上,不由得淡淡一笑,这不难呀! 于是乎我就写下了这样的代码: ...