2023/4/4
MFC创建时生成的类,窗口中自带的组件:
View:视图,数据的显示和修改
App:程序
Frame:视图外面的框
Doc:数据的存储和加载
wchar_t:宽字符,_t一般表示typedef后的名字,一般是typedef unsigned short wchar_t
OnPaint会直接覆盖OnDraw,不必要时不会使用OnPaint
PreCreateWindow:在显示Wnd之前,用来修改Wnd
用Create创建窗口,会向系统发送WM_CREATE消息,OnCreate会对该消息进行响应
Ex结尾的函数都是扩展函数,Afx开头的函数都是全局函数
afx_msg标志函数原型
窗口过程:设计窗口、注册窗口、创建窗口、显示和更新、通过循环取消息、处理消息
模态对话框、非模态对话框
生成方法:1、双击按钮,只会生成点击的响应函数; 2、在属性中创建响应事件; 3、右键添加事件
模态创建:
//1、引用头文件(引用时前缀C可以去掉)
#include "DlgExec"
//2、在点击事件方法中创建对象,并调用方法
CDlgExec dlg;
dlg.DoModel();
非模态创建:
//1、引用头文件
#include "DlgShow"
//2、在CDialogDlg.h中声明一个对象,如果在点击事件中创建对象,会导致函数执行完毕后对象销毁
CDlgShow dlg;
//3、在OnInitDiglog函数中执行创建函数,保证只会在首次运行执行Create函数,dlg对象也可以Create其他Dialog的ID
dlg.Create(IDD_DIALOG2);
//4、显示Dialog框
dlg.ShowWindow(SW_SHOWNORMAL);
在StaticText中添加文件
//用static_Text显示图片,在OnInitDialog中调用
//设置静态控件窗口风格为位图居中显示
m_DynamicPic.ModifyStyle(0xf, SS_BITMAP|SS_CENTERIMAGE);
//通过路径获得bitmap句柄
#define HBMP(filepath, width, height) (HBITMAP)LoadImage(AfxGetInstanceHandle(), filepath, IMAGE_BITMAP, width, height, LR_LOADFROMFILE)
//宽高设置 应该按照 控件的大小取设置
CRect rect;
m_DynamicPic.GetWindowRect(rect);
//静态控件设置bitmap
m_DynamicPic.SetBitmap(HBMP(TEXT("./FirPic.bmp"), rect.Width(), rect.Height()));
Edit Control中想要支持换行,需要将Want Return 和 Multiline改为true,但是不能超过文本框的大小
Auto HScroll 和 Auto VScroll可以设置水平以及垂直能否无限输入
滚动条:Horizontal Scroll 和 Vertical Scroll
退出:1、退出整个程序exit(0) 2、退出当前窗口CDialog::OnOk()(会触发事件更新)CDialog::OnCancel()
如果不希望在文本框中输入回车就退出,就在Dlg类的属性中找到OnOk,对其进行重写