*-- To Tell The Truth --*
Cruz
MAIL
HOME
|
|
2002年03月01日(金) ■ |
|
混乱 |
|
昨日の一瞬で消えるプロパティシートの謎は解けた。
どうも一昨日まで絡んでいたタブコントロールと何か頭の中で混ざり合っていたようだ。
原因はこちら。
メインメニューのダイアログからボタンを押すと現れるプロパティシート。 この関数は、ボタンクリック時に呼び出す。
void CreateProp(HWND hWnd) { PROPSHEETPAGE psp; PROPSHEETHEADER psh; HPROPSHEETPAGE hpsp[3]; // シートは3枚
psp.dwSize = sizeof(PROPSHEETPAGE); psp.dwFlags = PSP_DEFAULT; psp.hInstance = hInst1; psp.pszIcon = NULL; psp.pszTitle = ""; psp.lParam = 0; psp.pfnCallback = NULL;
// 環境設定 psp.pszTemplate = MAKEINTRESOURCE(IDD_CONTROL_ENV); psp.pfnDlgProc = (DLGPROC)ControlEnvProc; hpsp[0] = CreatePropertySheetPage(&psp);
// データ作成 psp.pszTemplate = MAKEINTRESOURCE(IDD_DATA_CREATE); psp.pfnDlgProc = (DLGPROC)ControlDataProc; hpsp[1] = CreatePropertySheetPage(&psp);
// データ送信 psp.pszTemplate = MAKEINTRESOURCE(IDD_DATA_SEND); psp.pfnDlgProc = (DLGPROC)ControlSendProc; hpsp[2] = CreatePropertySheetPage(&psp);
memset(&psh, 0, sizeof(PROPSHEETHEADER)); psh.dwSize = sizeof(PROPSHEETHEADER); psh.dwFlags = PSH_NOAPPLYNOW; psh.hInstance = hInst1; psh.hwndParent = hWnd; psh.nPages = 3; psh.phpage = hpsp; psh.pszCaption = "環境設定・データ作成送信";
PropertySheet(&psh);
return; }
何を血迷ったかpsp.pszTemplateのところに、タグ名を挿入していた。 そうしたら一瞬の表示で終わり。
まぁ、もっともな結果なんだけど。
よーく考えてみると、ここにリソース名を入れずにどこで指定できるというのだ? リソース指定しなきゃ・・・どのダイアログを入れるのかわからないじゃないか。
我ながらおまぬけであった。
これも花粉のせいってことで。
ちなみにタグ名(プロパティシートの各シート名)は、各ダイアログリソースのプロパティで定義したキャプションで出力される。
まぁ、当たり前な話しなのだが。
|
|