VC++对话框中加状态栏

原文链接: http://blog.chinaunix.net/uid-9847882-id-1996528.html

方法一:
1.添加成员变量CStatusBarCtrl m_StatusBar;
2.在OnInitDialog()中加入:
               m_StatusBar.Create(WS_CHILD|WS_VISIBLE|SBT_OWNERDRAW, CRect(0,0,0,0), this, 0);

int strPartDim[3]= {100, 200, -1}; //分割数量
               m_StatusBar.SetParts(3, strPartDim);

//设置状态栏文本
               m_StatusBar.SetText("分栏一", 0, 0);
               m_StatusBar.SetText("分栏二", 1, 0);
               m_StatusBar.SetText("分栏三", 2, 0);
               //下面是在状态栏中加入图标
               m_StatusBar.SetIcon(1, 
                             SetIcon(AfxGetApp()->LoadIcon(IDR_MAINFRAME),
                             FALSE));//为第二个分栏中加的图标

方法二:
1.添加成员变量CStatusBar m_wndStatusBar;
2.在OnInitDialog()中加入:
               static UINT indicators[] =
               {
                             ID_SEPARATOR,                               // status line indicator
                             ID_INDICATOR_CAPS,           //CAP lock indicator.
                             ID_INDICATOR_NUM,            //NUM lock indicator.
                             ID_INDICATOR_SCRL,           //SCRL lock indicator.
               };

if (!m_wndStatusBar.Create(this) ||
                             !m_wndStatusBar.SetIndicators(indicators,
                               sizeof(indicators)/sizeof(UINT)))
               {
                             TRACE0("Failed to create status bar\n");
                             return -1;      // fail to create
               }

UINT nID;     //控制状态栏里面的分栏
               m_wndStatusBar.SetPaneInfo(0,nID,SBPS_STRETCH|SBPS_NOBORDERS,100);            //返回值存nID中
               m_wndStatusBar.SetPaneText(0,"就绪");

m_wndStatusBar.SetPaneInfo(1,nID,SBPS_NORMAL,100);
               m_wndStatusBar.SetPaneText(1,"大写");

m_wndStatusBar.SetPaneInfo(2,nID,SBPS_POPOUT,100);
               m_wndStatusBar.SetPaneText(2,"数字");

//SetPaneInfo()函数的第三个参数的可选项如下:
             //The following indicator styles are supported:
             //            SBPS_NOBORDERS             No 3-D border around the pane.
             //            SBPS_POPOUT                               Reverse border so that text "pops out."
             //            SBPS_DISABLED              Do not draw text.
             //            SBPS_STRETCH               Stretch pane to fill unused space. Only one pane per status bar can have this style.
             //            SBPS_NORMAL                               No stretch, borders, or pop-out.

//----------------让这个状态栏最终显示在对话框中-------------
               RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0);

时间: 2024-11-01 22:38:59

VC++对话框中加状态栏的相关文章

VC++对话框中添加状态栏的方法

方法一:1.添加成员变量CStatusBarCtrl m_StatusBar;2.在OnInitDialog()中加入:                  m_StatusBar.Create(WS_CHILD|WS_VISIBLE|SBT_OWNERDRAW, CRect(0,0,0,0), this, 0); int strPartDim[3]= {100, 200, -1}; //分割数量                  m_StatusBar.SetParts(3, strPartDi

VC对话框上添加状态栏

VC在对话框上添加状态栏,没有可视化的控件,要用类来创建. 1.在窗口.h文件中添加成员变量 CStatusCtrl  m_status; 2.在窗口的OnInitDialog函数中添加创建代码: RECT     m_Rect;      GetClientRect(&m_Rect);         //获取对话框的矩形区域   m_Rect.top = m_Rect.bottom-20;    //设置状态栏的矩形区域   m_Status.Create(WS_CHILD|WS_VISIB

VC对话框添加工具栏

在VC对话框中添加工具栏,要分为如下几步操作. 1.在资源视图中添加toolbar类资源,在工具栏上添加按钮,并命名ID:ID_BTN1,ID_BTN2 2.对话框头文件中,添加变量CToolBar  m_ToolBar; 3.在对话框的OnInitDialogh函数中添加如下代码: // TODO: 在此添加额外的初始化代码       if( !m_ToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE |          CB

vc++ 不同对话框中传递信息的方法(基于自定义消息SendMessage) (转载)

转载自:http://blog.csdn.net/myj0513/article/details/6827360 背景: 新建了一个基于对话框的MFC程序,在主对话框中添加tabcontrol控件,又新建了两个Dialog(CDialog1和CDialog2),将它们设为tabcontrol控件的子对话框. 目的: 两个子对话框之间传递消息,子对话框与主对话框传递消息. 方法: 第一步:  定义消息. 在目标窗口类的头文件或者stdafx.h中添加: #define WM_MY_MESSAGE 

在VC工程中添加多语言支持[转]

随着贸易国际化,在软件开发过程中,常会碰到需在现有中文版软件加入多语言支持的情况.由于不同语言版本间的差别通常仅是软件操作界面的不同,为实现多语言支持,使用纯资源DLL是一个不错的解决之道.所谓纯资源DLL是指只包含资源的DLL,譬如:快捷键.对话框.字符串.菜单.工具条.位图.图标.版本信息等等. 具体做法是:利用VC可视化编辑环境为每种语言制作一套资源ID一一对应的资源集并编译生成DLL文件.应用程序初始化时按预设的语言设置选择合适的资源DLL调入,使用资源时依据资源ID进行访问,这样即可实

在VC/MFC中嵌入Google地图——图文并茂

最近需要实验室需要将在无人机地面站中嵌入地图,在网上找了很多资料,终于有些眉目了, 首先,做这个需要用到的知识有,MFC控件.MFC类库.JavaScript脚本语言,Google API.Google离线地图:由于google离线地图不怎么会,首先从google在线地图开始. 下面总结一下这几天搞google地图的步骤,有附图,对MFC和JS脚本语言不懂的同学有用. 在线Google 地图步骤: (1).建立基于对话框的MFC工程. 由于我对MFC基本不了解,所以从网上下载了个例子,但是不知道

【MFC】MFC改变对话框中静态文本的字体大小

MFC改变对话框中静态文本的字体大小 2010/08/09 11:30 VC的对话框字体设置对所有控件都有效,你不能单独地改变某个静态文本的字体.对于你的问题,需要首先用CreateFont来建立一个字体对象,然后调用控件的SetFont,就可以了. 例子: 1.改静态文体的ID,如:IDC_STATIC1 2.添加一个Edit控件,建立一个关联的控件m_editControl. 3.在OnInitDialog中添加如下代码: CFont * f; f = new CFont; f->Creat

VC对话框的菜单添加快捷键

要在VC对话框上,为菜单添加快捷键,步骤如下: 1.先创建快捷键资源表IDR_ACCELERATOR1,在表中将快捷键与菜单ID绑定 2.在对话框的.h文件中,声明快捷键资源句柄  HACCEL m_Haccel; 3.在OnInitDialog函数中添加代码: //加载快捷键资源表   m_Haccel = LoadAccelerators(theApp.m_hInstance,(LPCTSTR)IDR_ACCELERATOR1); 4.添加快捷键消息处理虚函数,如下: BOOL CTestD

Qt中加载Libevent静态库(通过reimp和rs两条语句将lib转为a)

文章来源:http://blog.sina.com.cn/s/blog_731bf4c90102wnpr.html 本文仅是个人经验总结,若有错误欢迎指教! 最近要做一个跨平台的项目,同时也涉及到网络数据传输,所以考虑采用Qt和Libevent. 1.vs编译libevent 参考网上众多通过VS编译Libevent的文章(http://www.cnblogs.com/luxiaoxun/p/3603399.html),成功编译得到了?libevent.lib.libevent_core.lib