博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MFC工具条CToolBar添加非按钮控件CComboBox
阅读量:6738 次
发布时间:2019-06-25

本文共 1787 字,大约阅读时间需要 5 分钟。

继承CWnd的类都能放到工具条上。
原理:
1.在工具条资源添加分隔符SEPARATOR
2.设置分隔符宽度
3.得到分隔符窗口CRect
4.根据分隔符窗口创建Create组合框ComboBox
新手要源码,留下邮箱。
补充:
工程大的时候,需要清理状态才能正确显示,曾被困惑好久。
App里加CleanState();或直接删除注册表。
一、打开.rc文件修改如下:
/
//
// 工具栏
//
IDR_MAINFRAME TOOLBAR   16, 16
BEGIN
    BUTTON      ID_FILE_NEW
    BUTTON      ID_FILE_OPEN
    BUTTON      ID_FILE_SAVE
    SEPARATOR
    BUTTON      ID_EDIT_CUT
    BUTTON      ID_EDIT_COPY
    BUTTON      ID_EDIT_PASTE
    SEPARATOR
    BUTTON      ID_FILE_PRINT
    BUTTON      ID_APP_ABOUT
    SEPARATOR    
    SEPARATOR    // 占位符,索引11
END
二、MainFrm.h中添加CComboBox变量
CComboBox m_Combo;
三、MainFrm.cpp中OnCreate()添加如下代码:
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
    
if (CFrameWnd::OnCreate(lpCreateStruct) == -
1)
        
return -
1;
    
if (!m_wndToolBar.CreateEx(
this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
        !m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
    {
        TRACE0(
"
未能创建工具栏\n
");
        
return -
1;      
//
 未能创建
    }
    
//
 大气象 ↓
    
int index = 
11;
//
 占位符索引
    
#define IDC_COMBO 1001
    
int width = 
100;
//
 占位符宽度
    m_wndToolBar.SetButtonInfo(index,IDC_COMBO,TBBS_SEPARATOR,width);
    CRect rect;
    m_wndToolBar.GetItemRect(index,&rect);
    
int height = 
300;
//
 ComboBox下拉后高度,尽量长吧。
    rect.bottom = rect.top + height;
    m_Combo.Create(WS_CHILD|WS_VISIBLE|WS_VSCROLL|CBS_SORT|CBS_DROPDOWNLIST,
        rect,
this,IDC_COMBO);
    m_Combo.AddString(_T(
"
item0
"));
    m_Combo.AddString(_T(
"
item1
"));
    m_Combo.AddString(_T(
"
item2
"));
    m_Combo.SetCurSel(
0);
    
//
 大气象 ↑
    
if (!m_wndStatusBar.Create(
this))
    {
        TRACE0(
"
未能创建状态栏\n
");
        
return -
1;      
//
 未能创建
    }
    m_wndStatusBar.SetIndicators(indicators, 
sizeof(indicators)/
sizeof(UINT));
    
//
 TODO: 如果不需要可停靠工具栏,则删除这三行
    m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
    EnableDocking(CBRS_ALIGN_ANY);
    DockControlBar(&m_wndToolBar);
    
return 
0;
}
url:  
参考:
 

转载于:https://www.cnblogs.com/greatverve/archive/2012/11/07/mfc-toolbar-combo.html

你可能感兴趣的文章
对我而言晦涩的递归
查看>>
React Native 从入门到原理
查看>>
iOS如何随意的穿插跳跃,push来pop去
查看>>
使用maven编译Java项目 http://www.tuicool.com/articles/YfIfIrq
查看>>
【原创】JDK动态代理,此次之后,永生难忘。
查看>>
collection的框架结构
查看>>
c++中的对象复制
查看>>
ubuntu下linux内核源码阅读工具和调试方法总结
查看>>
PHP生成UTF-8编码的CSV文件用Excel打开乱码的解决办法
查看>>
IOS-5个可以帮你优化App的优秀网站
查看>>
ArrayIndexOutOfBoundsException
查看>>
JAVA判断各种类型数据是否为空
查看>>
如何使用kali的Searchsploit查找软件漏洞
查看>>
Vim for Rails developers: Lazy modern configuration
查看>>
十三、Android studio环境的搭建
查看>>
ES6 系列之模板字符串
查看>>
JVM(四)垃圾回收的实现算法和执行细节
查看>>
对象解构与点操作访问究竟谁快
查看>>
Python3入门机器学习(七)- PCA
查看>>
2017阿里,百度,京东java面试+笔试大合集,这些面试题你都会吗?
查看>>