MFC Leon1~8笔记总结由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“八年级知识点总结笔记”。
MFC Leon1~8笔记总结
基础知识:
※Windows程序是通过发送消息来响应事件的。
※操作系统将每个事件包装成为一个消息结构体传递给应用程序
※Windows程序的入口函数为WinMain
Int WINAPI WinMain(HINSTANCE hInstance,//当前运行实例句柄
HINSTANCE hPrevInstance,//先前实例句柄(基于win32时总为空)LPSTR lpCmdLine,//命令行参数
IntnCmdShow//显示状态)
※创建一个完整窗口的四个步骤
1、设计一个窗口类
2、注册窗口类
3、创建窗口
4、显示及更新窗口
※构造函数可以带参数,可以有很多个构造函数(重载);析构函数不允许带参数,只能有一个析构函数。构造函数和析构函数都没有返回值。
※this指针:指向对象本身,代表对象地址
※派生类对象建立时,先执行积累的构造函数,再执行派生类的构造函数,周期完成后,先执行派生类的析构函数,再执行基类的析构函数
※类中用const声明的只读变量,可以在构造函数中初始化
※多态性:在基类相应的函数中加上virtual声明,派生类对象地址传给基类指针时,发生迟邦定,可以执行派生类的同名函数(派生类没有时,再调用基类的)
※纯虚函数:在虚函数后面加上“=0”,没有函数体,只有名称。含有纯虚函数的类不能实例化对象,要在派生类中确定具体函数
※MFC的消息处理机制为消息映射
※MFC单文档程序中的View类覆盖在Frame(框架)类之上
※类当中的成员函数只有用static声明才能直接用类名调用(函数属于类本身),否则只能用对象调用(函数属于某一对象)
※静态成员函数只能使用静态成员变量,静态成员变量必须初始化
※View类中的OnDraw函数在窗口发生重绘时调用
※消息分类
标准消息:除WM_COMMAND之外,以 WM_ 开头的消息
命令消息:菜单项,加速键或工具按钮,以WM_COMMAND呈现,以ID区分通告消息:按钮单击,列表框选择等,向其父类窗口通知,以WM_COMMAND呈现App类和Doc类不能接收标准消息
※View类中的右键弹出菜单的拥有者为this时,只有其拥有者(View类)才能调用;如果选定拥有者为CMainFrame类,则CMainFrame能够在View类没有响应函数时调用自己的类中的函数
※菜单栏生成之后再次修改时,要进行重绘使之生效
※已经和对象关联起来的窗口,在销毁之前不能再和新窗口建立联系,可以设一个变量来查看是否已经建立联系,或者根据其句柄是否有值来判断
※对于静态文本(static text),也可以加命令予以响应:右键→ClaWizard 但是要修改其ID号,再勾选上style中的notify(这样之后它才能接受通告消息)
※对话框控件访问的七种方式:GetDlgItem→Get(Set)WindowTextGetDlgItemText/SetDlgItemTextGetDlgItemInt/SetDlgItemInt将控件和整型变量相关联将控件和控件变量相关联SendMeage
SendDlgItemMeage ※窗口相关术语
兄弟窗口:共享同一个父窗口的多个子窗口
活动窗口:应用程序的顶层窗口,也就是当前使用的窗口
前台窗口和后台窗口:创建正在使用窗口的线程为前台线程,这个窗口称为前台窗口;
所有其他的线程称为后台线程,有后台线程所创建的窗口称为后台窗口
※若使编辑框接受回车字符,需要把它的属性改为多行
※App类由CWinApp类派生,是MFC程序必不可少的一个类。基于对话框的MFC应用程序,没有View类和Frame类
※改变按钮的文本字体的方法:对话框上右键→属性→字体
※使用静态的MFC链接库能保证程序一直到其他电脑上依然能够运行(将MFC库打包到程序之中),动态的MFC链接库不能保证这一点(不过大多数windows已经包含了MFC库文件)※属性页资源对话框的属性中,style选项为child,border选项为thin,System Menu没有被复选上,More Styles中的Disabled被选中。属性页在创建新类时,基类要选为CPropertyPage,而非CDialog
※让新建的属性页类在Cla Wizard中显示的步骤:关闭工作区→在目录下找到.clw 文件,删除它→重新打开工程,选Cla Wizard,重新建立一个.clw 文件 ※单选框(Radio)的属性中Group要勾选上才会在Cla Wizard中的成员变量部分看到它,勾选上Group之后,它会成为这一组中第一个可选项(值为0),这个组直到遇到下一个style中也把Group勾选上的项时结束(未选择为-1,从第一个开始,关联的整型变量从0开始递增1)(注意变量和数据交换→UpdateData)
※组合框默认是排序的,若想按照输入的顺序显示,把style中的sort勾选掉 ※通过使用memset函数,可以为数组快速初始化
相关类:
※CDC类(CObject→CDC)绘图相关移动点画线把画笔选入到设备描述表画矩形画矩形或用矩形圈定路径层设置绘画模式在设备描述表中获取文本信息打开路径层关闭路径层
CDC::MoveTo CDC::LineTo
CDC::SelectObject CDC::FillRect CDC::Rectangle CDC::SetROP2
CDC::GetTextMetrics CDC::BeginPath CDC::EndPath
获得字符串在屏幕显示的宽度和高度 CDC::GetTextExtent将路径层与剪切区域进行互操作CDC::SelectClipPath获取背景色CDC::GetBKColor设置文本颜色CDC::SetTextColor为矩形区域内文本着色CDC::DrawText ※CClientDC类(CObject→CDC→CClientDC):构造时调用GetDC,析构时调用ReleaseDC ※CWindowDC类(CObject→CDC→CWindowDC):构造时调用GetDC,析构时调用ReleaseDC。
可以访问整个屏幕(客户区和非客户区)
※CWnd类(CObject→CCmdTarget→CWnd)获得父窗口指针获得Windows桌面窗口指针创建字处理插入符显示插入符创建图形插入符移动插入符获得菜单栏指针设置/取消菜单点击右键时调用的框架函数客户区坐标到屏幕坐标转换重绘菜单栏使客户区域无效直到WM_PAINT更新通告消息或加速键按下时调用显示窗口销毁窗口获取窗口文本获得窗口控件的指针设置窗口文本获取对话框文本设置对话框文本获取控件文本,并以整型返回将整型设置成控件文本读取/更新数据发送消息对窗口中指定控件发送消息设定窗口为焦点获得窗口矩形区域设置窗口区域获得当前窗口的下一窗口句柄获得窗口句柄获得从这个控件开始,第一个具有
WS_TABSTOP类型的控件句柄得到当前具有焦点的窗口指针
窗口相关
CWnd::GetParent
CWnd::GetDesktopWindow CWnd::CreateSolidCaret CWnd::ShowCaret CWnd::CreateCaret CWnd::SetCaretPos CWnd::GetMenu CWnd::SetMenu
CWnd::OnContextMenu CWnd::ClientToScreen CWnd::DrawMenuBar CWnd::Invalidate
CWnd::OnCommand(虚函数)CWnd::ShowWindow CWnd::DestroyWindow CWnd::GetWindowText CWnd::GetDlgItem CWnd::SetWindowText
CWnd::GetDlgItemText CWnd::SetDlgItemText CWnd::GetDlgItemInt CWnd::SetDlgItemInt CWnd::UpdateData CWnd::SendMeage
CWnd::SendDlgItemMeage CWnd::SetFocus
CWnd::GetWindowRect CWnd::SetWindowPos CWnd::GetNextWindow CWnd::GetWindow CWnd::GetNextDlgTabItem
CWnd::GetFocus
※CMenu类(CObject→CMenu)菜单相关
获得子菜单CMenu::GetSubMenu在菜单项上放置或移走标记CMenu::CheckMenuItem设置缺省菜单项CMenu::SetDefaultItem创建图形菜单CMenu::SetMenuItemBitmaps启用/禁用菜单项CMenu::EnableMenuItem装载菜单CMenu::LoadMenu使CMenu类析构时不销毁菜单资源CMenu::Detach将菜单或菜单项添加到现有的末尾CMenu::AppendMenu
创建空弹出菜单并关联一个对象CMenu::CreatePopupMenu保存菜单句柄的变量CMenu::m_hMenu插入弹出菜单到固定位置CMenu::InsertMenu删除菜单项或弹出菜单CMenu::DeleteMenu销毁菜单CMenu::DestroyMenu
※CString类(基类)字符串相关
装载字符串资源CString::LoadString取字符串的前n个字符CString::Left
获得字符串长度CString::GetLength清空字符串CString::Empty格式化到字符串CString::Format查找第一个目标CString::Find
※CDialog类(CObject→CCmdTarget→CWnd→CDialog)对话框相关创建模态对话框CDialog::DoModal关闭模态对话框CDialog::EndDialog创建非模态对话框CDialog::Create
※CButton类(CObject→CCmdTarget→CWnd→CButton)按钮相关创建按钮CButton::Create
※CPropertySheet类(CObject→CCmdTarget→CWnd→CPropertySheet)属性表单相关将属性页加入到属性表单CPropertySheet::AddPage创建模态属性表单CPropertySheet::DoModal创建非模态属性表单CPropertySheet::Create
设置成为创建向导模式CPropertySheet::SetWizardMode设置向导按钮CPropertySheet::SetWizardButtons
※CPropertyPage类(CObject→CCmdTarget→CWnd→CDialog→CPropertyPage)属性页相关当属性页活动时调用CPropertyPage::OnSetActive在向导点击“下一步”时响应CPropertyPage::OnWizardNext
※CPen类(CObject→CGdiObject→CPen)画笔相关
※CBrush类(CObject→CGdiObject→CBrush)画刷相关
将画刷句柄转换为指针CBrush::FromHandle(静态函数)
※CBitmap类(CObject→CGdiObject→CBitmap)位图相关
载入图片CBitmap::LoadBitmap
※CFont类(CObject→CGdiObject→CFont)字体相关
初始化点阵字体CFont::CreatePointFont
※CRect类(基类)矩形相关
判断矩形区域是否为空(宽和高为0)CRect::IsRectEmpty判断矩形是否存在(四个角坐标为0)CRect::IsRectNull得到矩形宽度CRect::Width得到矩形高度CRect::Height
※CCmdUI类(基类)菜单项更新相关
启用/禁用菜单项CCmdUI::Enable保存菜单项ID的变量CCmdUI::m_nID保存菜单项索引的变量CCmdUI::m_nIndex
※CStringArray类(CObject→CStringArray)动态字符串操作相关
※CFrameWnd类(CObject→CCmdTarget→CWnd→CFrameWnd)框架窗口相关获取当前View类窗口指针CFrameWnd::GetActiveView
※CListBox类(CObject→CCmdTarget→CWnd→CListBox)列表框相关
※CComboBox类(CObject→CCmdTarget→CWnd→CComboBox)组合框相关
API函数:
※注册窗口类※创建窗口※显示窗口※更新窗口※从消息队列中获取消息※转换消息※收到的消息传到回调函数 ※得到DC※释放DC※文本输出※窗口布景※结束布景
RegisterCla CreateWindow ShowWindow UpdateWindow GetMeage
TranslateMeage DispatchMeage GetDC ReleaseDC TextOut BeginPaint EndPaint
※销毁窗口※请求结束线程※缺省窗口处理※获得已定义贮备的句柄※获得系统信息※字符串转换为整数※整数转换为字符串※发送消息※改变指定窗口的属性※获得当前窗口的下一窗口句柄※获得窗口句柄※获得从这个控件开始,第一个具有
WS_TABSTOP类型的控件句柄
宏:
※CALLBACK宏: _stdcall
※COLORREF宏:DWORD数据类型 ※RGB宏:选择颜色COLORREF RGB(BYTE byRed,BYTE byGreen,BYTE byBlue);
※LOWORD宏:取32位数的低字节 ※HIWORD宏:取32位数的高字节
消息:
※获得字符消息※鼠标左键按下消息※鼠标移动※获取文本消息※设置文本消息※获取复选内容消息※设置复选框内容消息※对话框及其子控件创建完成之后,并在其显示前发送消息
DestroyWindowPostQuitMeageDefWindowProcGetStockObjectGetSystemMetricsatoiitoa
SendMeageSetWindowLongGetNextWindowGetWindow
GetNextDlgTabItem
// green component of colorWM_CHAR
WM_LBUTTONDOWNWM_MOUSEMOVEWM_GETTEXTWM_SETTEXTEM_GETSELEM_SETSEL
WM_INITDIALOG
// red component of color// blue component of color
发热:内生性致热原(EP)的细胞包括单核、巨噬、内皮、淋巴。内源性致热源:血液中白细胞产生的内源性致热原,可通过血脑屏障直接作用于体温调节中枢(白介16,干扰,肿瘤坏死)。外源性致热......
合同撤销权与解除权 对比 合同撤销的情形1、限制民事行为能力人订立的合同,善意相对人在合同被追认之前可以行使撤销权。2、无权代理人以被代理人名义订立的合同……,善意相对......
竖向设计:竖向设计是指在一块场地上进行垂直于水平面方向的布置和处理。目的:因地制宜,以最大限度地发挥园林的综合功能出发,统筹安排园内各种景点、设施和地貌之间的关系,使地上......
填空题15道(每空1分,共15分),单选题10道(每题1.5分,共15分),多项选择题5道(每题2分,多选或少选均不得分,共10分),简答题共30分,材料题共30分。以下为参考提纲 1.中国共产党的性质、指导思......
土壤质量监测1.土壤是由矿物质、动植物残体腐解产生的有机物质、土壤生物、水分和空气等固、液、气三相组成的2.土壤有机质通常可分为非腐殖物质(包括糖类化合物(如淀粉、纤......