再探MFC(五)状态栏

创建和初始化状态栏

step1

对话框添加变量

// 状态栏对象

CStatusBarm_wndStatusBar;

step2

OnInitDialog调用

//创建和初始化状态栏

BOOLCLBDKFODlg::CreateStatusBar()

{

static UINT nIndicators[] = {

ID_CALL_STATUS

};

if (!m_wndStatusBar.Create (this))

return FALSE;

m_wndStatusBar.SetIndicators (nIndicators,1);

CRectrect;

GetClientRect(&rect);

m_wndStatusBar.SetPaneInfo(0,ID_CALL_STATUS,SBPS_NORMAL,rect.Width());

//m_wndStatusBar.GetStatusBarCtrl().SetBkColor(RGB(180,180,180));

RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,ID_CALL_STATUS);

return TRUE;

}

注意在资源文件中定义ID_CALL_STATUS.

更新状态栏文本

m_wndStatusBar.SetPaneText(0,"空闲");

参考资料

CStatusBarin CDialog,  SetPaneText and CTime,GetCurrentTime with VC++ Sample

To create a status bar, follow these steps:

  1. Construct the CStatusBar object.
  1. Call the Create (or CreateEx)
    function to create the status-bar window and attach it to the CStatusBar object.
  1. Call SetIndicators to associate a string ID with each indicator.

There are three ways to update the text in a status-bar pane:

  1. Call CWnd::SetWindowText to update the text in pane 0 only.
  1. Call CCmdUI::SetText in the status bar‘s ON_UPDATE_COMMAND_UI handler.
  1. Call SetPaneText to update the text for any pane.

源文档 <https://msdn.microsoft.com/en-us/library/fha3tfk7.aspx>

时间: 2024-08-07 23:15:33

再探MFC(五)状态栏的相关文章

再探MFC(八)使用数据库

ADO包装类 A set of ADO classes - version 2.20 源文档 <http://www.codeproject.com/KB/database/caaadoclass1.aspx> 使用介绍 CADODatabase包装_ConnectionPtr,管理数据库连接. 连接数据库例子 //Sample withConnection string for SQL Server CADODatabase* pAdoDb= new CADODatabase(); CStr

再探MFC(七)用户自定义消息

用途 回调函数通信 子对话框与父对话框通信,子对话框间通信 线程通信 用户自定义消息使用 step1 定义消息ID 例如Resource.h #define                LBD_SET_CALL_STATE_MESSAGE                (WM_USER+100) step2 消息处理 类视图选中要发往消息的对话框类,在属性视图中重写WindowProc 在TODO下添加代码处理用户自定义消息 switch (message) { caseLBD_SET_CAL

再探MFC(四)创建对话框

以点击菜单弹出非模式对话框为例. step1 资源视图添加对话框模板.重命名对话框资源ID. step2 选中对话框,右键菜单点击添加类. step3 在菜单项的消息处理函数中 CDialogAddContactdlg; INT_PTR nResponse =dlg.DoModal(); if (nResponse ==IDOK) { } else if (nResponse== IDCANCEL) { } 可以通过DoModel创建模式对话框,通过Create创建非模式对话框.Remarks解

[老老实实学WCF] 第五篇 再探通信--ClientBase

原文:[老老实实学WCF] 第五篇 再探通信--ClientBase 老老实实学WCF 第五篇 再探通信--ClientBase 在上一篇中,我们抛开了服务引用和元数据交换,在客户端中手动添加了元数据代码,并利用通道工厂ChannelFactory<>类创建了通道,实现了和服务端的通信.然而,与服务端通信的编程模型不只一种,今天我们来学习利用另外一个服务类ClientBase<>来完成同样的工作,了解了这个类的使用方法,我们对服务引用中的关键部分就能够理解了. ClientBase

再探oVirt-配置一个2节点的ovirt环境

日期:2015/11/4 - 2015/11/5 主机:engine, node01, node02 目的:再探oVirt-配置一个2节点的ovirt环境 操作内容: 一.基础操作 1.资源 ovirt engine: engine ovirt node: node01, node02 2.hosts 10.50.200.141 engine.ovirt 10.50.200.101 n101.ovirt 10.50.200.102 n102.ovirt 3.防火墙放行同一个局域网内的访问限制 后

再探 butterfly.js - 奇异的留白

再探 butterfly.js - 奇异的留白 事情经过 在 梓凡兄 捣鼓他的 豆瓣FM 播放器的时候,发现了butterfly.js会在ipad的横屏模式(landscape mode)的时候对<html>添加class="ipad ios7".更加离奇的是在butterfly.css有以下样式: @media (orientation:landscape){ html.ipad.ios7 > body{ position:fixed;bottom:0;width:

再探Linux动态链接 -- 关于动态库的基础知识

  在近一段时间里,由于多次参与相关专业软件Linux运行环境建设,深感有必要将这些知识理一理,供往后参考. 编译时和运行时 纵观程序编译整个过程,细分可分为编译(Compiling,指的是语言到平台相关目标文件这一层次)和链接(Linking,指目标文件到最终形成可执行文件这一层次),这个总的过程可称为编译时:就动态链接而言,还存在一个运行时,即程序在被操作系统加载的过程中,系统将该程序需要的动态库加载至内存到程序开始运行的这一段过程.明确这两个过程在一般linux开发中的地位,以及了解每个"

再探css3

再探css3 我们知道,这几年来智能手机的高速发展使得人们使用移动端上网的时间和人数已经超过了PC端.例如在2015年,就中国电商而言,各电商平台在移动端持续发力,移动端购物占比不断攀升,双11期间,天猫交易额突破912亿元,其中移动端交易额占比68%,京东移动端下单量占比达到74%,其余各大电商平台移动端的支付比例也在60%-80%之间.即移动端在2015年超越PC端,成为网购市场的主流选择.这也使得网页设计师需要更加注重移动端的网页制作,而移动端对于HMTL5和CSS3目前已经支持的非常好了

【再探JNI】

上一次了解了一点JNI,然后不甘心的找到了JNI的官方文档.(官方文档绝对是一个最好的学习资料),百度找出来的一些资料大多数是比较零零碎碎的,不具有系统学习的可能,对于我这样的初学者,先全面的了解一个技术比往一个死角里钻研要好很多.并且百度出来的部分资料估计就是跟我这样的半吊子水平还不到的人的一些心得体会呢.因此,个人建议是看官方文档去全面了解一项技术,然后不理解的地方去再去搜集资料.加上自己的理解和实践,这样会进步的快一点. 好了,闲话少说.进入今天的真题.<再探JNI> (1)什么时候用J