LoadStringW( _In_opt_ HINSTANCE hInstance, //实例句柄 _In_ UINT uID, //定义好的资源ID _Out_writes_to_(cchBufferMax, return + 1) LPWSTR lpBuffer,//资源指针 _In_ int cchBufferMax//资源大小 );
这个函数用来加载字符串:一个应用窗口程序运行就是在一个实例中,如果运行了两个窗口的应用程序,就是两个实例实例句柄就是指向实例的指针已有的资源就已经在项目文件中了,项目文件会对资源提供ID号,我们加载的字符串就是这个资源缓存区指针就是对加载的资源进行存储区域的指针存放资源缓存区的大小就是对加载的资源进行存储区域的大小整个过程:对项目文件的资源(这里是指字符串,通过ID号找到)加载到实例的缓存区(通过指针加载,且指定缓存区大小)HINSTANCE 是“句柄型”数据类型相当于装入到了内存的资源的IDHINSTANCE对应的资源是instance.句柄实际上是一个 无符号长整数2.窗口类结构体WNDCLASSEX分析typedef struct{ UINT cbSize; UINT style; WNDPROC lpfnWndProc; int cbClsExtra; int cbWndExtra; HINSTANCE hInstance; HICON hIcon; HCURSOR hCursor; HBRUSH hbrBackground; LPCTSTR lpszMenuName; LPCTSTR lpszClassName; HICON hIconSm;} WNDCLASSEX, PWNDCLASSEX;1. cbSize WNDCLASSEX 的大小在调用GetClassInfoEx前必须要先设置它值我们可以用sizeof(WNDCLASSEX)来获得准确的值2. style 窗口类的样式,它的值可以是窗口样式值的任意组合可以有以下的值:
1. cbSize WNDCLASSEX 的大小在调用GetClassInfoEx前必须要先设置它值我们可以用sizeof(WNDCLASSEX)来获得准确的值2. style 窗口类的样式,它的值可以是窗口样式值的任意组合CS_BYTEALIGNCLIENT窗口的客户区域以“字符边界”对齐,当系统调整窗口的水平位置时,客户区域的左边坐标是8的整数倍CS_BYTEALIGNWINDOW窗口以“字符边界”对齐,当系统调整窗口的水平位置时,客户区域的左边坐标是8的整数倍CS_CLASSDC分配一个设备环境并被类中的所有窗体共享它是可以适用于一个应用程序的若干线程创建的一个相同类的窗体当多个线程试图同时使用相同的设备环境时,系统只允许一个线程成功地进行绘图操作CS_DBLCLKS当用户双击窗口时,将向窗口函数发送鼠标双击消息CS_GLOBALCLASS指定此窗体类是一个应用程序全局类应用程序全局类是由一个在进程中对所有模块有效的exe或dll注册的窗体类CS_HREDRAW如果窗口的位置或宽度发生改变,将重绘窗口CS_NOCLOSE窗口中的“关闭”按钮不可见CS_OWNDC为同一个窗口类中的每个窗口创建一个唯一的设备上下文CS_PARENTDC设置子窗口中剪下的矩形区域到父窗口中,以使子窗口可以在父窗口上绘图指定该风格可以提高应用程序的性能CS_SAVEBITS把被窗口遮掩的屏幕图像作为位图保存起来当该窗口被移动时,Windows操作系统使用被保存的位图来重建屏幕图像CS_VREDRAW如果窗口的位置或高度改变,将重绘窗口3. lpfnWndProc 指向窗口处理函数(回调函数)处理窗口事件,像单击鼠标会怎样,右击鼠标会怎样,都是由此函数控制的4. cbClsExtra 为窗口类的额外信息做记录,初始化为05. cbWndExtra 记录窗口实例的额外信息,系统初始为0.如果程序使用WNDCLASSEX注册一个从资源文件里创建的对话框,则此参数必须设置为DLGWINDOWEXTRA6. hInstance:本模块的事例句柄7. hIcon 窗口类的图标,为资源句柄,如果设置为NULL,系统将为窗口提供一个默认的图标8. hCursor 窗口类的鼠标样式,为鼠标样式资源的句柄,如果设置为NULL,系统提供一个默认的鼠标样式9. hbrBackground 窗口类的背景刷,为背景刷句柄,也可以为系统颜色值,如果颜色值已给出,则必须转化为以下的HBRUSH的值· COLOR_ACTIVEBORDER· COLOR_ACTIVECAPTION· COLOR_APPWORKSPACE· COLOR_BACKGROUND· COLOR_BTNFACE· COLOR_BTNSHADOW· COLOR_BTNTEXT· COLOR_CAPTIONTEXT· COLOR_GRAYTEXT· COLOR_HIGHLIGHT· COLOR_HIGHLIGHTTEXT· COLOR_INACTIVEBORDER· COLOR_INACTIVECAPTION· COLOR_MENU· COLOR_MENUTEXT· COLOR_SCROLLBAR· COLOR_WINDOW· COLOR_WINDOWFRAME· COLOR_WINDOWTEXT10. lpszMenuName 指向一个以NULL结尾的字符串,同目录资源的名字一样如果使用整型id表示菜单,可以用MAKEINTRESOURCE定义一个宏如果它的值为NULL,那么该类创建的窗口将都没有默认的菜单11. lpszClassName 指向窗口类的指针,LPSTR类型12. hIconSm 小图标的句柄,在任务栏显示的图标,可以和上面的那个一样3.资源文件自己制作一个ICO图标文件:最后,编译代码,生成应用程序,运行后,如图所示:NICE[呲牙][偷笑][偷笑][呲牙](图片来源网络,侵删)
0 评论