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. 产品设计体会(1011)少做就是多做
  2. IPv6时代的《TCP/IP详解》!
  3. 理想L2辅助驾驶都撞车了,特斯拉的L5之梦怎么办?
  4. 有sql漏洞的php脚本,DedeCms V57 plus/search.php 文件SQL注射0day漏洞脚本安全 -电脑资料...
  5. python国内书籍推荐_这些都是Python官方推荐的最好的书籍
  6. ZooKeeper(二)ZooKeeper能做什么?
  7. php阻止输入sql,在PHP中全面阻止SQL注入式攻击之三
  8. struts2、hibernate工作原理和流程
  9. 2021年末储能季,送4本面试宝典
  10. 阿里 2 年内市值将赶超苹果;腾讯回应吃鸡下架;滴滴恢复深夜运营 | 极客头条...
  11. 用perl过滤文本中的IP和端口
  12. UVA10493 Cats, with or without Hats【组合】
  13. 概率论经典问题 —— 三个事件 A、B、C 独立 ≠ 三个事件两两独立
  14. 【18.40%】【codeforces 631D】Messenger
  15. ServletContext的用法
  16. 计算机服务器可以开游戏吗,想买台小服务器做个人电脑,玩游戏可以吗
  17. php date转换为时间戳,php date如何转换时间戳
  18. UWB定位系统与蓝牙技术的对比
  19. 售价对标奢侈品,国货香水“德不配位”?
  20. 爬去动态网站今日头条图片集

热门文章

  1. Wordcounter,使用Lambdas和Fork / Join计算Java中的单词数
  2. Java线程:保留的内存分析
  3. 在JUnit测试中使用Builder模式
  4. JavaOne 2012:非阻塞数据结构如何工作?
  5. double小数点后最多几位_用了这么多英语学习APP后,我还是最喜欢这4款
  6. php管理智能dns,负载均衡之DNS轮询
  7. ln函数怎么看奇偶性_Python中函数的参数应该怎么理解?看完这篇文章情不自禁的想收藏...
  8. python爬虫数据可视化_适用于Python入门者的爬虫和数据可视化案例
  9. mysql数据库连接关闭_解决mysql数据库连接自动关闭问题
  10. bp配置 sap_SAP转储订单之 STO without delivery