00. 目录

文章目录

  • 00. 目录
  • 01. 案例概述
  • 02. 开发环境
  • 03. 关键技术
  • 04. 程序设计
  • 05. 秘笈心法
  • 06. 源码下载
  • 07. 附录

01. 案例概述

在工具栏中添加编辑框可以使用户在工具栏上进行输入操作,从而简化用户的操作,可以通过Create方法创建编辑框控件,并将编辑框控件的父窗口设为工具栏,在工具栏上显示编辑框。效果如下图所示。

02. 开发环境

系统环境:Windows 10

开发环境:Visual Studio 2019

03. 关键技术

要在工具栏上绘制编辑框,需要在工具栏按钮的位置使用Create方法动态创建,Create是CEdit的成员函数,实现编辑框的动态创建,语法如下:

BOOL Create( DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID );
参数说明dwStyle 设置编辑框的样式 rect 设置编辑框的显示位置pParentWnd 设置编辑框的父类nID 设定一个编辑框的ID资源值

04. 程序设计

(1)新建一个基于单文档视图结构的应用程序。

(2)在CMainFrame类的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;      // 未能创建}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);RECT rect;//创建编辑框m_Edit.Create(WS_CHILD | WS_CLIPSIBLINGS | WS_EX_TOOLWINDOW |WS_BORDER, CRect(0, 0, 10, 10), this, 1200);//获取工具栏指定按钮的区域m_wndToolBar.GetItemRect(9, &rect);//设置编辑框的父窗口是工具栏m_Edit.SetParent(&m_wndToolBar);//改变编辑框的大小m_Edit.MoveWindow(&rect);//显示编辑框m_Edit.ShowWindow(SW_SHOW);return 0;
}

05. 秘笈心法

动态创建编辑框

实例中的编辑框控件是动态创建的。MFC中任何窗体类的控件都可以动态创建,动态创建控件会占用程序的启动时间,当增加了程序的灵活性,应用程序中的控件可以根据一定的配置信息创建,进而达到通过改变配置信息,就可以改变界面的效果。

06. 源码下载

下载:【MFC】在工具栏中添加编辑框.rar

07. 附录

参考: 《Visual C++从入门到精通(项目案例版)》

【MFC】在工具栏中添加编辑框相关推荐

  1. 再谈用MFC实现文件拖放到编辑框

    前不久,看了南京海军指挥学院黄向明同学发表的" 用MFC实现文件拖放到编辑框"一文后,对其最后提出的问题很感兴趣,我就查了一下vc的msdn帮助,发现DragAcceptFiles ...

  2. MFC应用程序中添加控制台窗口

    在MFC程序中输出调试信息的方法有两种,一种是使用TRACE宏,可以向Output窗口输出调试信息:另一种是用MessageBox,弹出消息框来输出调试信息,但会影响程序的运行. 其实有一种方法可以更 ...

  3. MFC应用程序中添加控制台窗口---debug输出窗口

    在MFC程序中输出调试信息的方法有两种,一种是使用TRACE宏,可以向Output窗口输出调试信息:另一种是用MessageBox,弹出消息框来输出调试信息,但会影响程序的运行. 其实有一种方法可以更 ...

  4. MFC Windows 程序设计[211]之编辑框的输入与显示(附源码)

    MFC Windows 程序设计[211]之编辑框的输入与显示 程序之美 前言 主体 运行效果 核心代码 逻辑分析 结束语 程序之美 前言 MFC是微软公司提供的一个类库(class librarie ...

  5. Android列表控件选项中添加进度框ProgressBar实现

        今天有时间就学习了下在ListView.GridView列表项中清加ProgressBar,小马用最简单的代码实现可以通用的功能,人人都能看懂,哈哈,直接说下,如果你的适配器getView方法 ...

  6. office工具栏不见_如何在Office中的快速访问工具栏中添加宏

    office工具栏不见 Macros in Word and Excel provide the ability to save time on predictable, repetitive tas ...

  7. wps启用编辑按钮在哪里_如何在wps工具栏中添加按钮 如何在Excel中添加删除命令按钮...

    延伸:如何在Excel中添加删除命令按钮 描述:在Excel 2003中,很多常用的命令按钮都放置在工具栏中,用户可以很方便地进行操作.添加命令主要是通过拖动的方式完成的,其具体的操作如下:骤一,在视 ...

  8. wps启用编辑按钮在哪里_在wps工具栏中添加按钮的方法介绍

    在工具栏上点右键->自定义,会打开一个 "自定义" 对话框.这个对话框的第二个选项卡 "命令(&C)" 中可以对菜单栏和各个工具栏的命令和按钮进行 ...

  9. MFC对话框程序中添加工具栏及工具栏上的Button响应UPDATE_COMMAND_UI消息

    对话框中添加工具栏及工具栏上的Button响应UPDATE_COMMAND_UI消息 在对话框程序中添加工具栏其实很简单,网上能找到很多的例子.一般的步骤就是:1.在资源中添加工 具栏资源:2.在对话 ...

最新文章

  1. jquery控制只监听数字_jQuery老矣,尚能饭否
  2. Colly源码解析——框架
  3. 集锦 | 新冠图像数据分析论文集合
  4. 关于机器学习的一些推荐
  5. 香港四大天王影帝情况(截止2016)
  6. VUE—从入门到飞起(三)
  7. VTK:可视化之ComplexV
  8. [漏洞案例]thinkcmf 2.x从sql注入到getshell实战
  9. 量化指标公式源码_量化庄建仓(副图指标源码)下载 通达信源码
  10. labelimg安装教程(小白都会)
  11. 【面向校招】Golang面试题总结
  12. windows下向GitHub上传代码
  13. JavaScript 中 List转Tree,Tree转List
  14. WSL关闭与windows的互交互(解决PATH等环境变量问题
  15. Grid控件 设置格子背景颜色
  16. android 布局覆盖 超出一部分_谈谈移动端屏幕适配的几种方法
  17. Facebook第三方登录对接
  18. Linux设置密码dictionary,Linux中修改密码出现it is based on a dictionary word解决方法
  19. IBIS建模方法之自己编写IBIS模型文件
  20. 微信 {errcode:48001,errmsg:api unauthorized, hints: [ req_id: 1QoCla0699ns81 ]}

热门文章

  1. onkeyup,onkeydown和onkeypress
  2. hdu 4679 树的直径
  3. nginx 配置文件参数说明
  4. 利用proc 实现内核和用户态交换数据
  5. sql server 2008 报表部署:提示输入用户名密码
  6. 如何实现场景切换的java_JavaFX + Scene Builder如何切换场景(JavaFX + Scene Builder how switch scene)...
  7. mysql 预编译_PHP中MySQL的预处理(预编译)执行方式
  8. 【2012百度之星/资格赛】B:小诺爱USB设备
  9. ajax请求, 前后端, 代码示例
  10. python_day_5:20180720