• win32 sdk 环境下创建状态栏


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

    要创建状态栏用: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);

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

    签名:GreenLeaf1976
  • 相关阅读:
    跟王千问学数学之什么是比
    王千问之学习的金字塔
    跟王千问学数学之平方差公式
    跟王千问学数学之三角形
    跟王千问学数学之小数加法、最小公倍数
    跟王千问学数学之小数
    一年级孩子的特点以及如何辅导他们学习
    python中的property属性
    python中的浅拷贝和深拷贝
    http协议、web服务器、并发服务器(下)
  • 原文地址:https://www.cnblogs.com/greenleaf1976/p/14319150.html
Copyright © 2020-2023  润新知