一个WIN32工程如何转化为MFC工程?
前提条件:
(1)有一个CWinAppp派生类
(2)创造一个全局变量该派生类
(3)进入设置里面可以使用MFC类库
(4)在该类中定义一个初始化虚函数Initstance()
二.MFC的六大关键技术
(1)MFC程序的初始化过程
(2)消息映射机制
(3)运行时类型识别
(4)动态创建
(5)永久保存
(6)消息传递
三.SendMessage() 函数 与PostMessage()函数的区别
(1)分别阻塞函数 与 非阻塞函数
(2)返回值不同
(3)在多进程与多线程中最好使用PostMessage()函数
LRESULT SendMessage( UINT message, WPARAM wParam = 0, LPARAM lParam = 0 );
BOOL PostMessage( UINT message, WPARAM wParam = 0, LPARAM lParam = 0 );
四.MFC自定义消息
(1)首先自定义一个消息映射函数
(2)在全局变量中resource.h头文件中定义一个消息 (此消息因为是自定义 其值一般是 WM_USER + N)
(3)进行消息关联
五.模式对话框 与 非模式对话框
主要区别:模式对话框一般是指当该对话框执行时 其他对话框不能操作,而非模式对话框正好相反
模式对话框定义:在函数内部定义一个临时的对话框变量 然后执行DoModel()函数
非模式对话框定义:(1)在类中直接定义一个对话框变量 用时直接用该变量 这时的对对话框生存期更长
(2)直接定义一个对话框指针创建堆变量 生存期更长 CDILAOG *pDialog = new CDIALOG;
六.获取句柄方式
CWnd p*Wnd = GetDlgItem(控件ID)
若定义一个全局变量 则直接 类变量名.m_hwnd
七.对于EndDialog()函数 yu DestroryWindow()函数 前者是没有真正关闭对话框还有机会重现对话框 但是后者真正销毁对话框
八.CWnd类常见成员函数总体预览
m_hWnd //类成员变量
DestroyWindow //彻底销毁一个窗口
GetStyle //得到一个窗口的风格
Attach //关联一个窗口
Detach //与Attach()函数对应
CreateEx //带有扩展风格创建一个窗口
GetForegroundWindow //得到任务栏目前正在前台的主窗口
SetIcon // 设置图标
IsIconic // 判断是否最小窗口
IsZoomed // 判断是否最大窗口
GetWindowRect //得到窗口的位置 (以屏幕坐标为准)
GetClientRect //得到窗口的位置 (以窗口的坐标为准)
WindowFromPoint //
GetDlgItem // 得到窗口的巨句柄 (返回一个指针 Cwnd *)
GetDlgCtrlID //得到一个控件的ID
SetDlgCtrlID //设置一个控件的ID
ShowWindow //显示出来窗口
IsWindowVisible //判断窗口是否可见
ScreenToClient //将屏幕坐标转换为客户坐标
ClientToScreen //将客户坐标转换为屏幕坐标
SendDlgItemMessage //给一个
SetDlgItemInt //设置对话框标题为数字
SetDlgItemText //为一个对话框设置文本标题
SetTimer //设置响应时间函数
KillTimer //终止一个时间相响应函数
FlashWindow //调用此函数会在任务栏闪烁
SendMessage //发送消息函数(阻塞型函数)
PostMessage //发送消息函数(非阻塞型函数)
Movewindow //窗口移动函数
前提条件:
(1)有一个CWinAppp派生类
(2)创造一个全局变量该派生类
(3)进入设置里面可以使用MFC类库
(4)在该类中定义一个初始化虚函数Initstance()
二.MFC的六大关键技术
(1)MFC程序的初始化过程
(2)消息映射机制
(3)运行时类型识别
(4)动态创建
(5)永久保存
(6)消息传递
三.SendMessage() 函数 与PostMessage()函数的区别
(1)分别阻塞函数 与 非阻塞函数
(2)返回值不同
(3)在多进程与多线程中最好使用PostMessage()函数
LRESULT SendMessage( UINT message, WPARAM wParam = 0, LPARAM lParam = 0 );
BOOL PostMessage( UINT message, WPARAM wParam = 0, LPARAM lParam = 0 );
四.MFC自定义消息
(1)首先自定义一个消息映射函数
(2)在全局变量中resource.h头文件中定义一个消息 (此消息因为是自定义 其值一般是 WM_USER + N)
(3)进行消息关联
五.模式对话框 与 非模式对话框
主要区别:模式对话框一般是指当该对话框执行时 其他对话框不能操作,而非模式对话框正好相反
模式对话框定义:在函数内部定义一个临时的对话框变量 然后执行DoModel()函数
非模式对话框定义:(1)在类中直接定义一个对话框变量 用时直接用该变量 这时的对对话框生存期更长
(2)直接定义一个对话框指针创建堆变量 生存期更长 CDILAOG *pDialog = new CDIALOG;
六.获取句柄方式
CWnd p*Wnd = GetDlgItem(控件ID)
若定义一个全局变量 则直接 类变量名.m_hwnd
七.对于EndDialog()函数 yu DestroryWindow()函数 前者是没有真正关闭对话框还有机会重现对话框 但是后者真正销毁对话框
八.CWnd类常见成员函数总体预览
m_hWnd //类成员变量
DestroyWindow //彻底销毁一个窗口
GetStyle //得到一个窗口的风格
Attach //关联一个窗口
Detach //与Attach()函数对应
CreateEx //带有扩展风格创建一个窗口
GetForegroundWindow //得到任务栏目前正在前台的主窗口
SetIcon // 设置图标
IsIconic // 判断是否最小窗口
IsZoomed // 判断是否最大窗口
GetWindowRect //得到窗口的位置 (以屏幕坐标为准)
GetClientRect //得到窗口的位置 (以窗口的坐标为准)
WindowFromPoint //
GetDlgItem // 得到窗口的巨句柄 (返回一个指针 Cwnd *)
GetDlgCtrlID //得到一个控件的ID
SetDlgCtrlID //设置一个控件的ID
ShowWindow //显示出来窗口
IsWindowVisible //判断窗口是否可见
ScreenToClient //将屏幕坐标转换为客户坐标
ClientToScreen //将客户坐标转换为屏幕坐标
SendDlgItemMessage //给一个
SetDlgItemInt //设置对话框标题为数字
SetDlgItemText //为一个对话框设置文本标题
SetTimer //设置响应时间函数
KillTimer //终止一个时间相响应函数
FlashWindow //调用此函数会在任务栏闪烁
SendMessage //发送消息函数(阻塞型函数)
PostMessage //发送消息函数(非阻塞型函数)
Movewindow //窗口移动函数