提供参考框架,具体内容回忆与翻阅资料。
底层实现窗口(windows)
- SDK概念、API概念、句柄概念
- 消息处理机制
- 头文件windows.h
- 程序入口(winMain)
具体步骤
- 设计窗口 WNDCLASS wc
- 注册窗口 RegisterClass
- 创建窗口 createWindow
- 显示和更新 showWindow updateWindow
- 通过循环取消息 MSG msg
写循环 while(1){
GetMessage == false 退出循环
翻译消息
分发消息 }
- 窗口过程
LRESULT CALLBACK WindowProc
返回默认处理
return DefWindowProc(hWnd,uMsg,wParam,lParam)
操作判断:
右上角X, WM_CLOSE -> destroy信号
WM_DESTROY 调用postQuitMessage(0)
按下鼠标左键 干什么 ……
键盘按下干什么 ……
绘图与文字
利用MFC创建窗口
- MFC头文件afxwin.h
- 自定义类 MyApp:public CWinApp 继承于 CWinApp 应用程序类 创建 MyApp app 应用程序对象(有且仅有一个)
- 在构造中进行初始化,将自定义内容添加到初始化函数中
- 程序入口 InitInstance()
- 在程序入口里创建窗口
- 窗口框架类 Myframe 继承于 CframeWnd
- Myframe 构造中 Create(NULL,窗口标题)(可以查询Create()来自定义窗口)
- 创建窗口对象
- 显示和更新m_pMainWnd =frame; //保存指向应用程序的主窗口的指针
- 程序入口函数 return TRUE
- 对项目进行配置 “在共享DLL中使用MFC”
消息映射机制
通过消息宏来进行消息映射,调用相关消息映射函数
- 声明宏 写到 .h 中
- 分界宏 写到 .cpp中
- 消息宏 写到分界宏中间
EX. .h文件
class Myframe:public CframeWnd
{
pubilc:
Myframe();
//声明消息映射,必须用在类声明中
DECLARE_MESSAGE_MAP()
};
EX. .cpp文件
BEGIN_MESSAGE_MAP(Myframe,CframeWnd)
ON_WM_LBUTTonDOWN()
.......
END_MESSAGE_MAP()



