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);

注册完毕后就能创建窗口了。

由于时间问题,具体如何实现明天继续写~

原文地址:https://www.cnblogs.com/riskyer/p/3228779.html