窗口函数中获取主程序实例句柄的三种方法

来源:互联网 发布:电玩巴士淘宝3ds 编辑:程序博客网 时间:2024/05/14 20:48

一。使用hInst全局变量,使窗口过程能访问WinMain中的实例句柄。在WinMain中,只需在建立主窗口之前设置hInst=hInstance即可

 

二。在窗口过程中使用(HINSTANCE)GetWindowLong(hwnd,GWL_HINSTANCE)函数即可获得程序的实例句柄。

 

三。在处理WM_CREATE消息的过程中,lParam实际上是指向CREATESTRUCT结构的一个指针,而CREATESTRUCT结构如下

    typedef struct tagCREATESTRUCT { // cs 
        LPVOID    lpCreateParams;     
        HINSTANCE hInstance; 
        HMENU     hMenu; 
        HWND      hwndParent; 
        int       cy; 
        int       cx; 
        int       y; 
        int       x; 
        LONG      style; 
        LPCTSTR   lpszName; 
        LPCTSTR   lpszClass; 
        DWORD     dwExStyle; 
    } CREATESTRUCT;

    其中包含的一个hInstance即为所要用的hInstance,可以这样获取((LPCREATESTRUCT)lParam)->hInstance.