vs2019 MFC 如何在框架类中实现添加一个按钮button

2023-11-01

首先, 在框架类CMainFrame中添加一个CButton m_btn的成员

然后,在框架类CMainFrame中OnCreate 函数最后添加创建button的函数并显示button,

(注意:在创建button函数create中如果使用了WS_VISIBLE,那么ShowWindow可以不用)

最后运行,可以看到显示添加的button在框架显示栏范围内(根据需要调整button大小位置让其显示在合理位置即可)

重点:关于CButton类提供的成员函数Create 和CButton的父类CWnd提供的ShowWindow说明如下:

Create

Creates the Windows button control and attaches it to the CButton object.

 

 

CButton::Create
Example  See Also  Send Feedback
 

 

Creates the Windows button control and attaches it to the CButton object.

 
virtual BOOL Create(
   LPCTSTR lpszCaption,
   DWORD dwStyle,
   const RECT& rect,
   CWnd* pParentWnd,
   UINT nID 
);

Parameters

lpszCaption

Specifies the button control's text.

dwStyle

Specifies the button control's style. Apply any combination of button styles to the button.

rect

Specifies the button control's size and position. It can be either a CRect object or a RECT structure.

pParentWnd

Specifies the button control's parent window, usually a CDialog. It must not be NULL.

nID

Specifies the button control's ID.

Return Value

Nonzero if successful; otherwise 0.

Remarks

You construct a CButton object in two steps. First, call the constructor and then call Create, which creates the Windows button control and attaches it to the CButton object.

If the WS_VISIBLE style is given, Windows sends the button control all the messages required to activate and show the button.

Apply the following window styles to a button control:

  • WS_CHILD   Always

  • WS_VISIBLE   Usually

  • WS_DISABLED   Rarely

  • WS_GROUP   To group controls

  • WS_TABSTOP   To include the button in the tabbing order

Example

Visual C++  Copy Code
CButton myButton1, myButton2, myButton3, myButton4;

// Create a push button.
myButton1.Create(_T("My button"), WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON, 
   CRect(10,10,100,30), pParentWnd, 1);

// Create a radio button.
myButton2.Create(_T("My button"), WS_CHILD|WS_VISIBLE|BS_RADIOBUTTON, 
   CRect(10,40,100,70), pParentWnd, 2);

// Create an auto 3-state button.
myButton3.Create(_T("My button"), WS_CHILD|WS_VISIBLE|BS_AUTO3STATE, 
   CRect(10,70,100,100), pParentWnd, 3);

// Create an auto check box.
myButton4.Create(_T("My button"), WS_CHILD|WS_VISIBLE|BS_AUTOCHECKBOX, 
   CRect(10,100,100,130), pParentWnd, 4);
MFC Library Reference
CWnd::ShowWindow
Example  See Also  Send Feedback
 

 

Sets the visibility state of the window.

 
BOOL ShowWindow(
   int nCmdShow 
);

Parameters

nCmdShow

Specifies how the CWnd is to be shown. It must be one of the following values:

  • SW_HIDE   Hides this window and passes activation to another window.

  • SW_MINIMIZE   Minimizes the window and activates the top-level window in the system's list.

  • SW_RESTORE   Activates and displays the window. If the window is minimized or maximized, Windows restores it to its original size and position.

  • SW_SHOW   Activates the window and displays it in its current size and position.

  • SW_SHOWMAXIMIZED   Activates the window and displays it as a maximized window.

  • SW_SHOWMINIMIZED   Activates the window and displays it as an icon.

  • SW_SHOWMINNOACTIVE   Displays the window as an icon. The window that is currently active remains active.

  • SW_SHOWNA   Displays the window in its current state. The window that is currently active remains active.

  • SW_SHOWNOACTIVATE   Displays the window in its most recent size and position. The window that is currently active remains active.

  • SW_SHOWNORMAL   Activates and displays the window. If the window is minimized or maximized, Windows restores it to its original size and position.

Return Value

Nonzero if the window was previously visible; 0 if the CWnd was previously hidden.

Remarks

ShowWindow must be called only once per application for the main window with CWinApp::m_nCmdShow. Subsequent calls to ShowWindow must use one of the values listed above instead of the one specified by CWinApp::m_nCmdShow.

Example

Visual C++  Copy Code
// Uses CalcWindowRect to determine size for new CFrameWnd
// based on the size of the current view. The end result is a
// top level frame window of the same size as CMdiView's frame.
void CMdiView::OnMyCreateFrame() 
{
   CFrameWnd* pFrameWnd = new CFrameWnd;
   CRect myRect;
   GetClientRect(myRect);
   pFrameWnd->Create(NULL, _T("My Frame"));
   pFrameWnd->CalcWindowRect(&myRect, CWnd::adjustBorder);
   pFrameWnd->MoveWindow(0, 0, myRect.Width(), myRect.Height());
   pFrameWnd->ShowWindow(SW_SHOW);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vs2019 MFC 如何在框架类中实现添加一个按钮button 的相关文章

  • MFC应用程序可以在Windows以外的操作系统上运行吗?

    我需要使用 VC MFC 创建一个基于对话框的 GUI 我确信它可以在 Windows 操作系统上运行 但是它可以在 Linux Unix 或 Windows 以外的其他操作系统上运行吗 QT 是一个不错的选择吗 从源代码角度来看 使用 M
  • 如何在基于 MFC 对话框的应用程序中捕获复选框的 MouseMove 事件?

    我的应用程序是一个基于 VC6 MFC 对话框的应用程序 具有多个属性页 我必须捕获控件上的鼠标移动事件 例如复选框 如何捕获 MFC 中复选框上的 mousemove 事件 复选框是一个按钮控件 例如 CWnd 从 CCheckBox 派
  • MFC和ATL之间的根本区别是什么?

    假设我是only将它们用于 普通 GUI 程序 没有 COM 没有 ActiveX 没什么花哨的 我将看到 ATL 和 MFC 之间的根本区别是什么 以帮助我弄清楚使用哪一个 我在网上做了一些搜索 但最终没有一个答案真正回答了我的问题 ht
  • Visual Studio 无法识别我的网络摄像头激光测距仪代码的 MFC 库

    我尝试直接从互联网复制源代码 但由于下面发现的错误 我无法构建 调试整个文件 请帮忙 Error occurred while restoring NuGet packages System ArgumentException The pa
  • MFC中Tree(CTreeCtrl)中添加特定树项的图标

    我们可以为特定的树项目添加图标吗 我使用以下功能添加带有图标的项目 HTREEITEM InsertItem LPCTSTR lpszItem int nImage int nSelectedImage HTREEITEM hParent
  • Boost::序列化和 MFC Doc/View 架构

    我正在移植现有的 MFC C 应用程序以对 XML 文件使用 Boost Serialization 我的 CDocument 对象包含应用程序的所有数据 我已将序列化函数实现为 template
  • SetWindowPos() 函数不移动窗口?

    我有一个对话框 我想将其放置在另一个对话框中 并相对于主对话框上的其中一个控件进行定位 void CspAceDlg DrawResultsArea CWnd pTabCtl GetDlgItem IDC BUILDTABS CRect r
  • MFC:如何捕获Web浏览器控件中的链接单击事件?

    我有一个带有 Web 控件的 MFC 应用程序 单击可单击链接时 它将使用 IE 打开 而不是默认浏览器 问题 有没有办法强制使用默认浏览器打开它 如果没有 我如何捕获链接单击事件 以便稍后可以操纵单击事件 谢谢 不 据我所知还没有 查看有
  • 创建非托管常规 MFC DLL 并从托管 C++ .NET 应用程序调用它时出现问题

    我有几个关于 DLL 的问题 我尝试了很多 但无法获得完整的图片 大多数示例都是用 C 等编写的 使用 VS2005 中的向导 我创建了一个非托管 MFC 常规 DLL 由于剩余代码 必须是 MFC 然后我尝试将其导入 VS2005 管理的
  • 当窗口未最大化时缺少 WM_NCLBUTTONUP 消息的奇怪问题

    我有一个处理 WM NCLBUTTONUP 消息的窗口 以便处理标题栏中自定义按钮的点击 当窗口最大化时 这非常有效 但当窗口未最大化时 WM NCLBUTTONUP 消息永远不会到达 不过我确实收到了 WM NCLBUTTONDOWN 消
  • 如何向 CMFCPopupMenu 添加图标?

    我想用CMFCPopupMenu用于右键单击期间的弹出菜单 如何添加图标CMFCPopupMenu 这是我在基本 MFC 应用程序中尝试的示例代码 CMFCPopupMenu TestCMFCPopMenu new CMFCPopupMen
  • 如何在现有 Windows 应用程序中获得 ATL 支持

    我正在 Visual Studio 2012 中使用 Qt 5 3 1 构建一个应用程序 我还想使用一个硬件库 这需要我向项目添加一个简单的 ATL 对象 这可以通过使用 Visual Studio 向导来完成 该向导抱怨我的项目既不是 M
  • 如何调整 CWnd 内 WPF 控件的大小?

    我正在托管 WPFUserControlMFC 内部CWnd 它工作得很好 我现在需要弄清楚如何与其父控件一起调整控件的大小 我已经迷上了OnSize我正在打电话GetWindowRect并将结果设置为我的控件 如下所示 void CChi
  • _CrtDumpMemoryLeaks( ) == 1 在第一行代码上?

    我正在开发一个 MFC Visual C 项目 据我了解MSDN http msdn microsoft com en us library d41t22sb 28v VS 100 29 aspx CrtDumpMemoryLeaks 应该
  • 如何使用 MFC 禁用顶级菜单项并使其变灰

    我有一个对话框应用程序 我希望在对话框顶部有可单击的菜单项 这些项目不显示下拉菜单 但实际上运行关联的命令 我通过在对话框属性中设置 Popup False 并分配消息 ID 来做到这一点 但我的问题是 当项目可点击没有意义时 无法正确禁用
  • 对 MFC UI 应用程序进行单元测试吗?

    如何对大型 MFC UI 应用程序进行单元测试 我们有一些大型 MFC 应用程序已经开发了很多年 我们使用一些标准的自动化 QA 工具来运行基本脚本来检查基础知识 文件打开等 这些由 QA 小组在日常构建后运行 但我们希望引入一些程序 以便
  • 如何在 MFC 中调整对话框大小时移动控件?

    我已经在 MFC 中创建了对话框视图 从下图中可以清楚地看到 如滑块控件和编辑框等 当我调整对话框大小时 这些控件不会移动 在此输入图像描述 https i stack imgur com 7OxAK jpg 我想移动控件以适应对话框 但不
  • Create CFrameWnd 给出了第一次机会异常——为什么?

    我正在尝试使用基于 CFrameWnd 的代码编写一个简单的 MFC 应用程序 该应用程序在可滚动窗口中绘制 下面的代码改编自 Prosise Programming Windows with MFC 第 2 版 第 89ff 页 当我在调
  • 从模态 MFC 表单获取输入信息

    我已经创建了表格CPreparationDlg具有Edit Control 然后我创建了创建模态表单的应用程序 在按 确定 后 我需要将编辑控件中输入的文本读入主程序的变量中 最好的方法是什么 class CPreparationApp p
  • 为什么我的单选按钮不起作用?

    我正在 Visual C 2005 中开发 MFC 对话框应用程序 我的单选按钮是 m Small m Medium 和 m Large 它们都没有在我的 m Summary 编辑框中显示应有的内容 可能出什么问题了 这是我的代码 Pizz

随机推荐

  • 关于eclipse的项目前有感叹号和errors exist in required project相关问题

    一般来说 项目运行中 各个类的信息中并没有报错 但在运行中会出现errors exist in required project 且有时候运行也会成功 这种情况是由于项目中其他的类存在问题未解决 导致影响到项目整体运行 另一种情况是类并未有
  • 牛客网-做题笔记

    网易有道2017内推选择题 XML数据结构有且只有一个根节点 可以嵌套 XML解析分为三种 SAX解析 PULL解析和DOM解析 求循环队列元素个数 rear front Max Max 非循环队列 元素个数为 rear front 1 程
  • 微服务链路追踪zipkin

    微服务链路追踪sleuth zipkin 一 安装zipkin 二 sleuth概念解析 1 trace 2 span 3 annotation 4 采样率 三 zipkin流程图 1 zipkin流程图 2 追踪流程 四 注意事项以及配置
  • Log4J2在Web工程下日志无法写入文件的问题

    接触Log4J不久 之前在Java工程测试学习的 一切正常 前几天在做一个JSP的案子 Web工程下 同样的配置文件 却写不到文件 在控制台日志正常输出 Web工程下 在Java类main方法中测试 也可以正常写入文件 控制台也是正常 经过
  • 互动直播的技术细节和解决方案实践经验谈

    目录 1 互动直播背景 2 连麦流程 功能与技术指标 2 1 连麦的业务流程 2 2 互动直播的功能 2 3 技术指标 2 4 应用领域 3 主流的技术方案 3 1 互动直播技术领域 3 2 主流的技术方案 3 2 1 基于RTMP技术的连
  • 背调小计

    新员工入职前的背调 了解下 附上链接 https zhuanlan zhihu com p 33248594
  • (2021-8-17) Qt5 中自带的几种button控件简介

    本节参考正点原子qt教程 1 按钮简介 在Qt中最常用的控件应该就是按钮了 点击按钮 即可发送信号 触发响应事件 实现人机交互 在Qt中内置了六中按钮控件 1 QPushButton QPushButton 继承 QAbstractButt
  • SQL server无法启动服务,提示“错误1069: 由于登录失败而无法启动服务”

    转自 http www 111cn net database mssqlserver 52624 htm 今天在启动sqlserver2008时碰到了遇到SQL server无法启动服务 提示 错误1069 由于登录失败而无法启动服务 提示
  • C语言字符串完成大小写转换

    4 编写一个程序 可以一直接收键盘字符 如果是小写字符就输出对应的大写字符 如果接收的是大写字符 就输出对应的小写字符 如果是数字不输出 此题第一步需要遍历整个输入字符串 第二部完成循环判断赋值将符合条件的值赋值到新的字符串数组中即可 de
  • 线程的五种状态

    1 新建状态 New 创建一个新的线程对象 2 就绪状态 Runnable 线程创建对象后 其他线程调用start 方法 该线程处于就绪状态 资源已经准备就绪 等待CPU资源 3 运行状态 Running 处于就绪状态的线程获取到CPU资源
  • javascript 琐碎知识点1

    1 Javascript是一种基于对象和事件驱动 并具有安全性能的脚本语言 2 Javascript的特点 1 一种脚本编写语言 它的基本结构与C C 十分类似 但它不像这些语言需要先编译 而是在程序运行的过程中被逐行地进行解释 2 基于对
  • Redis分布式锁的实现原理看这篇就够了~

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 一 写在前面 现在面试 一般都会聊聊分布式系统这块的东西 通常面试官都会从服务框架 Spring Cloud Dubbo 聊起 一路聊到分布式事务 分布式锁 ZooKeep
  • ffmpeg编译iOS的.a库

    一 编译环境 系统 本人编译是在mac下的 此方法同样适用于linux yasm 接下来介绍yasm的安装 二 yasm的安装 打开终端 不用管当前目录是在哪 直接执行 brew install yasm 如果提示brew not foun
  • VTM遇到的问题集锦

    文章目录 一 待更新中 1 配置好VTM后 并在调试界面输入命令参数后 点击运行 既不报错 也没有任何结果 2 未加载符号文件 3 编码闪退问题 4 VTM AI编码帧数为总帧数八分之一 一 待更新中 1 配置好VTM后 并在调试界面输入命
  • 因果分析系列4--基于python的因果图模型学习

    因果分析系列4 因果图模型 1 因果图模型介绍 2 基于python绘制因果图模型 3 三种常见的因果图结构 3 1 链结构 chain 3 2 叉结构 fork 3 3 对撞结构 collider 4 巩固思考示例 在上一节中 介绍了因果
  • NodeJS优缺点及适用场景讨论

    http www xprogrammer com 159 html 概述 NodeJS宣称其目标是 旨在提供一种简单的构建可伸缩网络程序的方法 那么它的出现是为了解决什么问题呢 它有什么优缺点以及它适用于什么场景呢 本文就个人使用经验对这些
  • MongoDB设置自增字段

    在使用mongoDB数据库的时候有时候想要对数据库空的数字字段直接进行加减操作 可以用到 inc来实现 比如我想要把网站访问量的数据存到mongoDB数据库中 每次进入网站都可以把该数据进行一次 1操作 通过node js的mongoose
  • 【千律】C++基础:通过文件指针获取文件大小(字节数)

    include
  • Idea导入Eclipse项目

    文章目录 1 选择从已有文件导入 2 配置依赖 3 配置tomcat 在学习过程中经常遇到 eclipse 开发的项目 但是由于和 idea 配置有差异不能直接运行 需要做一些修改 1 选择从已有文件导入 使用 idea 导入文件 注意这里
  • vs2019 MFC 如何在框架类中实现添加一个按钮button

    首先 在框架类CMainFrame中添加一个CButton m btn的成员 然后 在框架类CMainFrame中OnCreate 函数最后添加创建button的函数并显示button 注意 在创建button函数create中如果使用了W