つまり、実行時にコンパイル済みリソースにプログラムでアクセスして、DLGINIT
構造から文字列を抽出するにはどうすればよいでしょうか。
もう少し詳しく...
COMBOBOX
MFCアプリケーションでは、コンボボックスは、次のような対応するDLGINIT構造を使用し、持つダイアログ記述の行として.rcファイルで定義できます。
IDD_COMBOBOXTEST_DIALOG DIALOGEX 0, 0, 320, 200
STYLE DS_SETFONT | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
EXSTYLE WS_EX_APPWINDOW
CAPTION "ComboBoxTest"
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
DEFPUSHBUTTON "OK",IDOK,209,179,50,14
PUSHBUTTON "Cancel",IDCANCEL,263,179,50,14
COMBOBOX IDC_COMBO1,22,20,132,30,CBS_DROPDOWN | CBS_SORT | WS_VSCROLL | WS_TABSTOP
EDITTEXT IDC_EDIT1,22,42,132,134,ES_MULTILINE | ES_AUTOHSCROLL | ES_READONLY
PUSHBUTTON "Load",IDC_BUTTON1,159,42,50,14
END
//...
IDD_COMBOBOXTEST_DIALOG DLGINIT
BEGIN
IDC_COMBO1, 0x403, 4, 0 0x6e4f, 0x0065,
IDC_COMBO1, 0x403, 4, 0 0x7754, 0x006f,
0
END
Visual C ++リソースファイルは、リソースファイルの上部にある特定のコードページを使用して、1バイトのテキストエンコードでエンコードされることを学びました。DLGINIT
また、構造内の線が次のように分解されていることも学びました。
<CONTROL ID>, 0x403, <STRING LENGTH>, 0 <STRING BYTES ENCODED FOR CODE PAGE>
私がやりたいのは、このコンパイル済みリソースを取得して、その文字列を引き出すことです。を使用してこの種のもののいくつかのためのAPIがありますがAfxFindResourceHandle
、それが私が行く必要がある方法であるかどうかはわかりません。