掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
プロパティシートを使ったPSH_WIZARD97スタイルのWizardが正しく表示されない (ID:69774)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
自己レスです。 調査と試行錯誤の上、以下のコードにたどりつきました。 [ダイアログリソース(プロパティページ用)] Style:子 System Menu:False Caption:なし Title Bar:False(ページ毎にウインドウタイトルを変えたい場合はTrue、Captionを入力) [コード] <プロパティページ> CWizPage1::CWizPage1() : CPropertyPage(CWizPage1::IDD) // IDD=ダイアログのリソースID { m_psp.dwFlags |= PSP_USEHEADERTITLE /*| PSP_HIDEHEADER*/; m_psp.pszHeaderTitle = _T("Header Title"); } <プロパティシート> CWizard1::CWizard1(LPCTSTR pszCaption, CWnd* pParentWnd, UINT iSelectPage) : CPropertySheet(pszCaption, pParentWnd, iSelectPage) { SetWizardMode(); AddPage(&m_Page1); // Page1はこのクラスのCWizPage1型のメンバです m_psh.dwFlags |= PSH_WIZARD97 | PSH_HEADER /*| PSH_WATERMARK*/; // m_psh.pszbmWatermark = MAKEINTRESOURCE(IDB_WIZARD_WATERMARK); m_psh.pszbmHeader = MAKEINTRESOURCE(IDB_WIZARD_HEADER_ICON); m_psh.hInstance = AfxGetInstanceHandle(); m_strTitle = BtxLoadString(IDS_MSG_WIZARD_TITLE); // OnInitDialog中でSetWindowTextする } 今回の間違いは、PSP_USEHEADERTITLEでヘッダー表示の指定を指定をした際に、 一緒にアイコンリソースを指定していなかったことでした。ヘッダーと透かしをフル セットで指定し、ヘッダーを隠したいときはPSP_HIDEHEADRを指定するとよいようです。 以下に、他にわかったことをコメントします。 ・上のコード中のコメントをはずせば、左端に縦長のペインが表示され、その背景 (=Watermark:透かし)が、pszbmWatermarkで指定したビットマップで埋められます。 ・今回はページ毎にウインドウタイトルを変えたくなかったので、ダイアログ のキャプションを非表示としました。(ダイアログのキャプションを表示すれば、 それが各ページ毎にウインドウのキャプションに表示されます)。ところが、 プロパティシート側ではキャプションを設定してもどうしても表示されず、やむを えずOnInitDialog中でSetWindowTextすることで対処しました。 ・ヘッダー左端に表示される、pszbmHeaderで指定されるアイコンは、49x49ピクセル でした。 以上 --
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.