VC++深入详解-第一章学习心得(一)
句柄是系统为资源分配内存的标识号。 相当于一个指针指向一块内存空间,我暂时理解成一个地址,一个门牌号
HWND 窗口句柄
HICON 图标句柄
HCURSOR 光标句柄
HBRUSH 画刷句柄
消息的结构体如下
/* * Message structure */ typedef struct tagMSG { HWND hwnd; //窗口句柄,用来标识窗口,指明这个消息是发给哪个窗口的 UINT message; //消息标示符,方便记忆定义为WM_XXX的形式(windows message)如WM_LBUTTONDOWN表示鼠标左键按下 WPARAM wParam; //指定消息的附加信息也就是上述的message的附加信息 LPARAM lParam; //同上,消息的附加信息 DWORD time; //消息投递到队列中的时间 POINT pt; //鼠标当前位置 #ifdef _MAC DWORD lPrivate; #endif } MSG, *PMSG, NEAR *NPMSG, FAR *LPMSG;
消息分为进队消息和不进队消息,最终都被窗口过程函数处理。
WinMain是程序入口,结构如下:
WinMain( HINSTANCE hInstance, //程序当前运行的实例的句柄(一个应用程序可以有多个实例,每运行一个实例就分配一个唯一的句柄值) HINSTANCE hPrevInstance, //当前实例的句柄的前一个句柄,Win32状态下都为NULL LPSTR lpCmdLine, //指定传递给应用程序的命令参数 int nShowCmd //指定应用窗口的显示情况(大小之类) );
窗体类的结构体
typedef struct tagWNDCLASSW { UINT style; //窗口样式 如CS_NOCLOSE 表示禁用系统菜单的关闭按钮 WNDPROC lpfnWndProc; //函数指针,指向窗口过程函数 int cbClsExtra; //表示附加窗口类内存空间,一般为0 int cbWndExtra; //表示附加窗口内存空间,一般为0 HINSTANCE hInstance; //窗口过程的程序的实例句柄 HICON hIcon; //窗口类的图标句柄,LoadIcon加载 HCURSOR hCursor; //窗口类的光标句柄,LoadCursor加载 HBRUSH hbrBackground; //窗口类的背景画刷句柄,GetStockObject获取,获取后需要进行转换(HBRUSH) LPCWSTR lpszMenuName; //指定菜单资源的名字 LPCWSTR lpszClassName; //指定窗体类的名字 } WNDCLASSW, *PWNDCLASSW, NEAR *NPWNDCLASSW, FAR *LPWNDCLASSW;
窗体类创建完成之后需要进行注册:RegisterClass(&wndcls);
注册完毕后就能创建窗口了。
由于时间问题,具体如何实现明天继续写~