実行環境:WinXP、VS2005
MFCのCStringのLoadStringを使わずに、リソースファイルから文字列を取得したいです。(MFCは使用しないことがポリシーです。)
SDKのLoadStringを使えば良いことは分かったのですが、
第一引数のリソースのハンドルはどのように取得すれば良いのでしょうか?
(HINSTANCE)GetWindowLong(hWnd, GWL_HINSTANCE);
とか
WM_CRETEイベントで、
((LPCREATESTRUCT)lParam)->hInstance;
の値をstatic変数か何かでとっておくとか。
参考
http://wisdom.sakura.ne.jp/system/winapi/win32/win55.html
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 ;
}
ツイート | ![]() |