MFCを使わずにリソースファイルをロードするには?


???  2008-07-15 23:45:58  No: 68707

実行環境:WinXP、VS2005
MFCのCStringのLoadStringを使わずに、リソースファイルから文字列を取得したいです。(MFCは使用しないことがポリシーです。)
SDKのLoadStringを使えば良いことは分かったのですが、
第一引数のリソースのハンドルはどのように取得すれば良いのでしょうか?


Blue  2008-07-15 23:51:50  No: 68708

(HINSTANCE)GetWindowLong(hWnd, GWL_HINSTANCE);

とか

WM_CRETEイベントで、

((LPCREATESTRUCT)lParam)->hInstance;

の値をstatic変数か何かでとっておくとか。

参考
http://wisdom.sakura.ne.jp/system/winapi/win32/win55.html


かもねぎ  2008-07-16 00:33:42  No: 68709

hInstance の取得方法
  No 1
    HINSTANCE hInst ;
    hInst = GetModuleHandle ( NULL ) ;

  No 2
    #include    <windowsx.h>

    HINSTANCE hInst ;
    hInst = GetWindowInstance ( hWnd ) ;

  No 3
    HINSTANCE hInst ;
    hInst = ( HINSTANCE ) LongToPtr ( GetWindowLongPtr ( hwnd, GWLP_HINSTANCE ) ) ;

  No 4
    HINSTANCE hInst ;
    hInst = ( HINSTANCE ) LongToPtr ( GetWindowLong ( hwnd, GWL_HINSTANCE ) ) ;

  No 5
    #include    <windows.h>

    HINSTANCE   hInst ;

    INT WINAPI WinMain ( HINSTANCE hInstance, HINSTANCE hPrevInstance,
                    LPSTR lpCmdLine, INT nCmdShow )
    {
        hInst = hInstance ;
        return 0 ;
    }

  No 6
    LRESULT On_Create ( HWND hwnd, LPCREATESTRUCT lParam )
    {
        HINSTANCE hInst ;
        hInst = lParam->hInstance ;
        return 0L ;
    }

  No 7
    LRESULT On_Create ( HWND hwnd, LPARAM lParam )
    {
        HINSTANCE hInst ;
        hInst = ( ( LPCREATESTRUCT ) lParam )->hInstance ;
        return 0L ;
    }


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加