int WINAPI WinMain(
HINSTANCE hInstance, //当前模块的地址
HINSTANCE hPrevInstance, //永远为NULL,不用管它
LPSTR lpCmdLine, //命令行参数,有CreateProcess传进来的
int nCmdShow //显示方式,由CreateProcess传进来
);
BOOL WINAPI CreateProcess(
__in_opt LPCTSTR lpApplicationName,
__inout_opt LPTSTR lpCommandLine, //命令行参数
__in_opt LPSECURITY_ATTRIBUTES lpProcessAttributes,
__in_opt LPSECURITY_ATTRIBUTES lpThreadAttributes,
__in BOOL bInheritHandles,
__in DWORD dwCreationFlags,
__in_opt LPVOID lpEnvironment,
__in_opt LPCTSTR lpCurrentDirectory,
__in LPSTARTUPINFO lpStartupInfo,
__out LPPROCESS_INFORMATION lpProcessInformation
);
1、定义窗口类(可以理解为这个窗口的类别,创建窗口的时候就用这个类别,然后再把具体信息给传进去)
2、注册窗口类,只有注册了之后才能使用
3、创建了一个窗口CreateWindow
在0环生成一个窗口对象,线程对象里面有一个消息队列
4、获取消息
GetMessage从消息队列中获取消息(获取的是所有窗口的),那么怎么确定这个消息是哪个窗口的呢?这就需要下面的处理消息
5、处理消息
用DisPatchMessage()函数,拿着消息进0环,找窗口对象,窗口对象里面存着消息处理函数的地址,由内核来调用这个函数