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. MySQL中有哪些锁?
  2. [C++] 井字棋游戏源码
  3. ActiveMq笔记3-AMQ高可用性理论
  4. 曾遭周鸿祎全网封杀的 360 猛将 :草根打工到 36 岁身家上亿的逆袭!
  5. Dubbo面试18问!这些你都会吗?
  6. javaScript编码
  7. 虚拟机安装linux系统教程
  8. 最新系统分析师考试大纲
  9. 安全模式解除android,手机安全模式怎么解除
  10. 键盘计算机编程是什么意思,可编程键盘是什么
  11. 2014年实习生招聘之腾讯实习生招聘面试(一面)—2014/04/01
  12. 实习期间的一些思考整理(5)2018.4.17~4.18
  13. 人若不知足,永远不幸福
  14. 数据挖掘的10大算法
  15. 两台win10电脑连接同一个wifi怎么共享文件
  16. 服务器麒麟系统是arm还是x64,麒麟arm环境安装ceph
  17. 【第一节 Node.js简介】
  18. 红外热成像的空间分辨率怎么算?
  19. 行业分析-全球与中国引风机市场现状及未来发展趋势
  20. 假设R1、R2、R3采用RIP协议交换路由信息,且均已收敛。若R3检测到网络201.1.2.0/25不可达,并向R2通告一次新的距离向量,则R2更新后,其到达该网络的距离是

热门文章

  1. 休息使用Jersey –包含JAXB,异常处理和客户端程序的完整教程
  2. Jelastic Java云端平台
  3. java的Swing里怎么new一条线_java – 在JFrame上绘制一条线
  4. python具体工作内容_有没有人知道公司里用python工作的内容有什么
  5. 英语中的开音节和闭音节
  6. FHS(Filesystem Hierarchy Standard 文件系统层次化标准)
  7. Linux 命令之 find -- 查找文件和目录/搜索文件和目录
  8. 系统制成docker镜像_docker 制作自己的镜像
  9. 【WebRTC---入门篇】(十六)端对端1V1传输基本流程
  10. 多核 linux 绑定,Linux 操作系统下CPU多核心的绑定