14.1 对话框快捷键的设置和加载

a) 插入一个新的Accelerator到资源里,把加速键和对应的响应控件(如一个按钮)关联

b) 在对话框头文件中声明

HACCEL m_hAccel;

c) 在对话框的构造函数里初始化m_hAccel

m_hAccel = ::LoadAccelerators(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_ACCELERATOR1));

d) 然后重载对话框的PreTranslateMessage函数,在

BOOL CAboutDlg::PreTranslateMessage(MSG* pMsg)
{
if (m_hAccelTable)
{
if (::TranslateAccelerator(m_hWnd, m_hAccelTable, pMsg))
{
return(TRUE);
}
}
return CDialog::PreTranslateMessage(pMsg);
}

14.2 CWnd派生类

a)控件分支:CEdit、CListCtrl、CComboBox、CTreeCtrl、CButton

b)CDialog分支:CColorDialog、CFindReplaceDialog、CFileDialog、CFontDialog

c)条分支:CToolBar、CStatusBar、CRebar

d)框架与视图:CFrameWnd、CMDIFrameWnd和CMDIChildWnd、CEditView、CListView、CHtmlView

14.3 CWnd类的成员

核心成员变量是HWND m_hWnd:所有成员函数几乎都是围绕这个成员变量在工作;

a) DestroyWindow:摧毁

  • 1、EndDialog(-1);

  • 2、CWnd* pWnd = GetDlgItem(IDOK);
    pWnd->DestroyWindow();

  • 3、pWnd->ShowWindow(SW_HIDE);

  • 4、其他进程:
    CWnd* pWnd = FindWindow(_T("Notepad"), NULL);
    pWnd ->DestroyWindow();
    pWnd->SendMessage(WM_CLOSE);

  • 5、Create:创建
    CreateEx:带风格创建,比如:下陷风格等

  • 6、operator HWND:将对象自动转为句柄(m_hWnd)

if (!m_ok)
{m_ok.Create(_T("Button"), _T("确定"), WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON | WS_TABSTOP, CRect(10, 50, 155, 69), this, 10088);CFont* pFont = GetFont();m_ok.SetFont(pFont);
}
  • 7、GetSafeHwnd:(推荐)安全地获取一个对象内的句柄
void CTestWDlg::OnBnClickedGetSafe()
{CWnd* pWnd = GetDlgItem(IDOK);HWND hWnd = pWnd->GetSafeHwnd(); //即使IDOK按钮销毁了,程序也不会崩溃
}
  • 8、FromHandle:获取一个与句柄关联的CWnd对象地址,FromHandle与GetSafeHwnd是反函数(如果没有关联将生成临时对象与句柄关联)
void CTestWDlg::OnBnClickedFromHandle()
{// FromHandle与GetSafeHwnd是反函数HWND h = ::GetDlgItem(m_hWnd, IDOK);CWnd* pOK = CWnd::FromHandle(h);pOK->SetWindowText(_T("OK"));
}

【MFC系列-第14天】MFC核心类库的成员介绍(记事本快捷键)相关推荐

  1. 【MFC系列-第20天】CDC绘图类成员介绍

    20.1 三大坐标系:屏幕.客户区和非客户区 20.2 三大派生类: a)CPaintDC(客户区标准绘图),内部封装函数是:BeginPaint和EndPaint b)CClientDC(客户区非标 ...

  2. 【MFC系列-第13天】Windows系统对话框(对话框记事本逻辑)

    13.1 内存泄露问题 真正的内存泄露是有循环性反复申请而不释放内存:是指在软件运行时,比如点一下某按钮就申请一次堆空间,而在下次申请前或者适当的时机及时释放内存: Detected memory l ...

  3. Java核心类库-IO-File类介绍和路径分割符

    Java的IO:类和接口存在于Java.io包中 讲IO操作之前,必须要先讲File类(文件/目录) File类介绍和路径分割符: File类是IO包中唯一表示磁盘文件和磁盘目录的对象的路径. 该类包 ...

  4. mfc 监控文件操作_商务办公好伴侣 兄弟MFC系列多功能一体机

    谈到多功能一体机产品,大家应该对兄弟品牌旗下的MFC系列并不陌生,该系列产品线跨度广,无论是中小型企业或是政府机关.事业单位等用户都有覆盖,凭借着MFC系列一体机高速.高质量.低成本等特点,MFC系列 ...

  5. VS2010/MFC编程入门之四(MFC应用程序框架分析)

    上一讲鸡啄米讲的是VS2010应用程序工程中文件的组成结构,可能大家对工程的运行原理还是很模糊,理不出头绪,毕竟跟C++编程入门系列中的例程差别太大.这一节鸡啄米就为大家分析下MFC应用程序框架的运行 ...

  6. (转载)VS2010/MFC编程入门之四(MFC应用程序框架分析)

    上一讲鸡啄米讲的是VS2010应用程序工程中文件的组成结构,可能大家对工程的运行原理还是很模糊,理不出头绪,毕竟跟C++编程入门系列中的例程差别太大.这一节鸡啄米就为大家分析下MFC应用程序框架的运行 ...

  7. MFC入门(一)——MFC是一个编程框架

    MFC (Microsoft Foundation Class Library)中的各种类结合起来构成了一个应用程序框架,它的目的就是让程序员在此基础上来建立Windows下的应用程序,这是一种相对S ...

  8. Java核心类库篇2——lang

    Java核心类库篇2--lang 1.Object 该类是所有类的父类,每个类都使用它作为超类,没有任何属性 方法声明 功能介绍 Object() 使用无参方式构造对象 boolean equals( ...

  9. MFC——我的第一个MFC

    我的第一个MFC 一."什么是MFC" 二.创建一个MFC 0.编译freeimage 1.在VS2022创建MFC 2.编写代码前3步骤 3.编辑代码 编辑pch.h 编辑doc ...

最新文章

  1. 让 PyTorch 更轻便,这款深度学习框架你值得拥有!在 GitHub 上斩获 6.6K 星
  2. 【windows】dos命令查看某个文件夹下所有文件目录列表
  3. Cmake知识----编写CMakeLists.txt文件编译C/C++程序
  4. Windows 2000/XP/2003超级工具
  5. linux 虚拟机扩展硬盘后扩展到分区
  6. python常用的开发环境包括_Python语言主要包括哪些集成开发环境?_学小易找答案...
  7. XXE漏洞利用技巧(XML注入):从XML到远程代码执行
  8. kmp 模式匹配算法学习笔记
  9. 微服务架构的分布式事务解决方案(Dubbo分布式事务处理)
  10. 使用bcp进行大数据量导出导入
  11. 威胁情报工具:更快?更聪明?
  12. iOS常用宏定义总结 --Objective-C
  13. 毫米和像素怎么换算_像素和毫米怎么换算啊??
  14. MySQL如何删除一行数据
  15. tesla k80显卡 配置支持opengl
  16. C++中字符串的三种定义和引用方法
  17. DNS服务器未响应,电脑网页打不开
  18. Jenkins环境部署
  19. 【JS 逆向百例】医保局 SM2+SM4 国产加密算法实战
  20. 以太网的信道利用率与MAC层详解

热门文章

  1. 在JUnit测试中使用Builder模式
  2. C ++或Java,高频交易哪个更快?
  3. 简单的Twitter:Heroku上的Play框架,AJAX,CRUD
  4. 如何通过命令终端访问本地/局域网/远程的MySQL数据库_访问数据库_连接数据库_登录数据库
  5. python有趣的面试题_python面试题目
  6. 微博如何发订阅消息_微信订阅号或将大变天,微博8年前就这么干了...
  7. 一天发多少短信会封号_枸杞一天吃多少?吃多了会怎样?黑枸杞红枸杞哪个好?...
  8. c 语言栈,C语言栈
  9. c++ 共享内存_Python3.8多进程之共享内存
  10. c 中头文件和源文件的区别是什么