说明
最重要的一点放在最开始:有任何不明白的就查MSDN帮助文档!这是最基本也是最重要的。
主函数
WinMain
函数是windows应用程序的入口函数
,它的默认定义为,一般可参照定义来写
int WINAPI WinMain(
HINSTANCE hInstance, // handle to current instance
HINSTANCE hPrevInstance, // handle to previous instance
LPSTR lpCmdLine, // command line
int nCmdShow // show state
)
在WinMain函数中需要创建一个窗口。创建一个窗口的四个步骤:
- 设计一个窗口类
- 注册设计的窗口类
- 创建一个窗口
- 显示并更新窗口
窗口类本质为一个结构体,需要为其中的每一个变量配置
教训
如果没有全部配置,则在生成程序时出错,可以按照开发环境的提示一项项写
消息循环
消息响应函数(回调函数)是窗口用来响应具体消息的操作命令。
Windows应用程序是基于消息循环的。消息结构体为
typedef struct tagMSG{
HWND hwnd; //消息所属的窗口句柄
UINT message;//消息本身标识符,由一数值表示,系统对消息定//义为WM_XXX宏(WM为Windows Message缩写)
WPARAM wParam; //随消息的不同附加信息也不同
LPARAM lParam; //消息的附加参数
DWORD time; //消息投递的时间
POINT pt; //鼠标当前位置
}
这个过程中有一系列的宏(如WM_
,CS_
,WS_
开头的),这些都是某一位为1
,其他位为0
的数值,可以利用位操作。
GetMessage
,TranslateMessage
,DispatchMessage
是一些常用的获取消息、翻译消息以及抛出消息的函数。
在消息的循环中,要特别注意对每一类消息都要有对应的操作,要做到一个萝卜【消息】一个坑【操作】
,对于不感兴趣的消息也要用默认的响应函数来应对。