掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
プロパティーシートを利用するには? (ID:52401)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
プロパティーシートについて質問があります(開発環境はVC++6.0 MFC ダイアログベースです)。 メインダイアログに配置したプッシュボタンを押すとプロパティーシートが表示されるようにしたいのですが、プロパティーページに配置したコントロール(ラジオボタンやチェックボックスなど)を初期化するためにプロパティーページクラスのファイルにInitDialog()を追加し、その関数内部でUpdateData(FALSE)を呼び出しています。しかし、コントロールメンバ変数の値がプロパティーページのコントロールには反映されません。また、プロパティーシートのOKボタンを押してもコントロールメンバ変数に反映されません。プロパティーシートの代わりにカスタムダイアログを利用した場合はうまくいったのですが原因がわかりません。どなたか教えていただけないでしょうか。いかにコードの一部を記載します。よろしくお願いします。 (メインダイアログクラス) BOOL CTestDlg::OnInitDialog() { CDialog::OnInitDialog(); ・・・・・・・・・・・・・・ // TODO: 特別な初期化を行う時はこの場所に追加してください。 m_pSettingProppage.m_Check = TRUE; m_pSettingProppage.m_Radio = 0; m_pSettingProppage.m_Edit = 8; return TRUE; // TRUE を返すとコントロールに設定したフォーカスは失われません。 } void CCleaningRobotDlg::OnSettingButton() { // TODO: この位置にコントロール通知ハンドラ用のコードを追加してください CSettingPropsheet SettingPropsheet("各種設定"); // タイトルバー設定 if(SettingPropsheet.DoModal() == IDOK) { ・・・・・・・・・ } else if(ret == IDCANCEL) { ・・・・・・・・・ } } (プロパティーシートクラス) CSettingPropsheet::CSettingPropsheet(UINT nIDCaption, CWnd* pParentWnd, UINT iSelectPage) :CPropertySheet(nIDCaption, pParentWnd, iSelectPage) { MyAddPage(); } CSettingPropsheet::CSettingPropsheet(LPCTSTR pszCaption, CWnd* pParentWnd, UINT iSelectPage) :CPropertySheet(pszCaption, pParentWnd, iSelectPage) { MyAddPage(); } CSettingPropsheet::~CSettingPropsheet() { } void CSettingPropsheet::MyAddPage() { // プロパティシートにページを登録する AddPage(&m_SettingProppage); } (プロパティーページクラス) BOOL CSettingProppage::OnInitDialog() { CPropertyPage::OnInitDialog(); // TODO: この位置に初期化の補足処理を追加してください UpdateData(FALSE); return TRUE; // コントロールにフォーカスを設定しないとき、戻り値は TRUE となります // 例外: OCX プロパティ ページの戻り値は FALSE となります }
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.