我们通常在设计中会用到一些控件,但有时控件太多,就会影响界面的美观、简洁,因此,会使用一些属性窗,较多做法是使用基于CPropertyPage和CPropertySheet属性页来创建,再通过DoModal()打开,但其为模态对话框,使用起来不太灵活,还因一些自带的控件影响美观等。本篇基于对话框类自制属性窗:

1) 资源视图->Dialog->添加资源->新建,添加控件并调整布局;

2) 项目->类向导->添加类(MFC类),填写类名(如:CCtrlSetDlg),基类选择CDialog,对话框选择新建对话框的ID号;

3) 主对话框的.h文件中包含新对话框的.h头文件,并添加代码:

CCtrlSetDlg*m_CtrlSetDlg;                     //子对话框变量

BOOLCreateCtrlSetDlg();                 //子对话框创建函数

BOOL isCtrlOn= false;

4) 添加子对话框创建函数CreateCtrlSetDlg()代码:

if(m_CtrlSetDlg == NULL){

m_CtrlSetDlg =new CCtrlSetDlg;

m_CtrlSetDlg->Create((LPCTSTR)CCtrlSetDlg::IDD,this);

if(m_CtrlSetDlg == NULL)

return false;

//调整子对话框位置

CRectrectParent;

CRect rect;

GetWindowRect(&rectParent);

rect.top =rectParent.top;

rect.left =rectParent.right - 6;

rect.bottom =rectParent.top + 570;

rect.right =rect.left + 220;

m_CtrlSetDlg->MoveWindow(&rect,TRUE);

return true;

}

else{

return true;

}

5) 添加控制按钮及响应函数代码:

if (CreateCtrlSetDlg()){

if (isCtrlOn){

isCtrlOn = false;

m_CtrlSetDlg->ShowWindow(SW_HIDE);    //隐藏对话框

m_btnCtrl.SetWindowTextW(L"CTRL>>");

}

else{

isCtrlOn = true;

m_CtrlSetDlg->ShowWindow(SW_SHOW);    //显示对话框

m_btnCtrl.SetWindowTextW(L"CTRL<<");

}

}

6) 添加OnClose()函数并添加代码:

deletem_CtrlSetDlg;

7)实现效果:点击按钮显示/隐藏子对话框。

VS简易示波器(二):自制子属性窗相关推荐

  1. stm32zet6自制简易示波器

    自制简易示波器 波形发生 DAC+DMA+TMR 波形发生器采用的是DAC+DMA+TMR的方案,主要思路:PA4 DAC的通道1,通过DMA把内存dataDAC[N]中的数据传送到DAC,并转换成模 ...

  2. 解析聚合新闻数据,并显示到主界面上(简易新闻 二)

    获取解析聚合新闻数据,并显示到主界面上(简易新闻 二) 关于之前的功能实现可以从制作简易新闻App导航篇中查看 先上一下最终效果图: 关于界面的搭建请看上一篇 使用Fragment+ViewPager ...

  3. 基于stm32mini开发板的简易函数发生器和简易示波器

    基于stm32 mini开发板的简易函数发生器和简易示波器 前言:用正点原子的mini开发板,设计制作简易示波器和简易函数发生器,需要运用的知识是 ADC+DAC+DMA+通用定时器+外部中断. 一. ...

  4. 关于三子棋游戏的简易实现与N子棋胜利判断方法

    关于三子棋游戏的简易实现与N子棋胜利判断方法 要实现三子棋游戏,主要需要实现以下几个要求:> 需要一个棋盘,既然需要一个棋盘,棋盘是在一个平面上的,所以我们需要创建一个二维数组 棋盘的打印 玩家 ...

  5. stm32简易示波器(标准库)

    简介 此项案例是基于正点原子精英板制作的一个简易示波器,可以读取信号的频率和幅值,并可以通过按键改变采样频率和控制屏幕的更新暂停. (输入最大3.3V,由ADC参考电压决定) 将PA6与PA4相连,可 ...

  6. 记一次线上重大事故:二狗子竟然把线上数据库删了!!

    推荐阅读: 这套Github上40K+star学习笔记,可以帮你搞定95%以上的Java面试 毫不夸张的说,这份SpringBoot学习指南能解决你遇到的98%的问题 最全面试题新鲜出炉:70+算法题 ...

  7. 【Spring注解驱动开发】二狗子让我给他讲讲@EnableAspectJAutoProxy注解

    写在前面 最近,二狗子入职了新公司,新入职的那几天确实有点飘.不过慢慢的,他发现他身边的人各个身怀绝技啊,有Spring源码的贡献者,有Dubbo源码的贡献者,有MyBatis源码的贡献者,还有研究A ...

  8. 开店没有客流量怎么办?二狗子告诉你

    大家好,我是小花❀ 从去年开始,我就发现周围的朋友都在做微商,还挺赚钱的 于是我就想,人家都能做微商赚钱,我咋不做个试试呢 后来和剧情一模一样,我也开始了微商之路... 但是,卖点啥好呢? 考察了几天 ...

  9. 基于STM32的开源简易示波器项目

    目录 ​一.前言 二.硬件接线 三.信号的采集 四.代码配置 五.数据的处理 六.模拟正弦波输出 七.模拟噪声或三角波输出 八.显示函数与按键控制 ​一.前言 该项目是基于正点原子精英板制作的一个简易 ...

最新文章

  1. java 数据库 空值_java – 是否可以将枚举属性的空值存储到数据库?
  2. HDU ACM 1046 Gridland 找规律
  3. Windows内存管理学习笔记(一)—— 线性地址的管理
  4. SpringBoot+Jquery+jsTree实现页面树型结构
  5. rds基于什么开发_元王RDS--让H公司的10多年的设计经验重获新生!
  6. python用map提取一个数的个十百位数_如何使用python中的map函数?
  7. node.js编写网页_为Node.js编写可扩展架构
  8. “我觉得,这个项目只需要 2 个小时”
  9. 图书馆占座系统(二)
  10. JSON 在线编辑器
  11. Keil Assistant 插件 fromelf 文件路径报错及hex、bin、axf、elf文件之间关系
  12. 软考中级-嵌入式系统设计师
  13. ios支付宝客户端集成流程
  14. python 金额计算_Python | 根据销售金额计算折扣
  15. cpu计算机词汇中文意思是,CPU计算机口译词汇中英文对照1
  16. MySQL数据库(三)-表行的语句使用
  17. 公众号的发文和留言都会显示城市了!来试试!
  18. opengles图像处理之图片锐化处理
  19. 软件测试面试题:在一个页面上,点击一个链接之后不会在当前页面上打开此链接而是新开一个窗口打开此页面。
  20. L1-057~L1063 (PTA使我精神焕发、6翻了、敲笨钟、心理阴影面积、新胖子公式、幸运彩票、吃鱼还是吃肉)

热门文章

  1. 2020煤矿采煤机(掘进机)操作模拟考试及煤矿采煤机(掘进机)操作复审模拟考试
  2. VS2010/MFC编程入门之二(利用MFC向导生成单文档应用程序框架)
  3. linux安装ncurses教程,Ubuntu 安装 Ncurses
  4. 三、存储系统(四)外部存储器
  5. Linux服务器运维/虚拟主机-李强强-专题视频课程
  6. Spring HttpInvoker简介
  7. epson打印机设置方法
  8. jQuery转换JS原生代码
  9. 打造数字时代的“诺亚方舟”
  10. Django.contrib 概述