いずみちゃんどっとこむ プログラミング掲示板
過去ログ一覧
Win32 Programming Tips (6)- 1 名前:いずみ 投稿日:2001/12/08(土) 04:34:25
- Win32 & VC++
- 2 名前:いずみ@インフォシティ 投稿日:2001/12/13(木) 21:51:04
- 今むちゃくちゃ悩んでおります…(涙)
COMでIPropertyPageを複数実装して、OleCreatePropertyFrame()でプロパティシートを表示しようと思いました。
んで、それは簡単にできるわけですが、問題は、実際に表示したこのプロパティシート、Applyボタンを押したときのメッセージハンドラである IPropertyPage::Apply()が、なぜかタブによるページ間切り替えでも呼ばれてしまいます。
ここに、MSのサンプルどーりのコード(プロパティの更新他)を実装してしまうと、ユーザがタブ切り替え→そのままキャンセル、なんてときにも全プロパティが更新されちゃうじゃありませんか(涙)
ネットで検索しても、これで悩んでる人が誰もいなさそうなんですよね…
どーなってるんだいったい!!!!(苦笑)
- 3 名前:いずみ 投稿日:2001/12/14(金) 01:16:51
- >>2の件は、やっぱり OleCreatePropertyFrame()がタコだろうってことで、CDialogImplの派生クラスに IPropertyPageSite を多重継承して実装しなおすことに。
んで、ここで躓く前は、ATL用に、レジストリと値とウィンドウコントロールの3者を行き来するテンプレートクラスの実装してました。テンプレート引数には文字列は渡せない、なんてことをはじめて知って大恥^^;;
ヘルパクラス使って、 CheckBox<IDC_ENABLED_VIEW, REGNAME_ENABLED_VIEW_TAG> enabled_view; なーんてやってます。
- 4 名前:いずみ 投稿日:2001/12/14(金) 01:19:13
- ていうか、VC++のバグなんとかしてくれ(涙)
この3日間に、http://member.nifty.ne.jp/~masumoto/cpp/vcbug/ に出てるうちの 5・6・7の3つにブチ当たったぞ(涙)
- 5 名前:いずみ@インフォシティ 投稿日:2001/12/14(金) 18:31:30
- >>4を実装したナリ〜(^o^)
で、ふつーのダイアログボックスとして、コントロールパネルでのプロパティシートとまったく同じに表示する方法でカンチガイして苦しんだなり^^;
コンパネのプロパティシートの特徴として、
(1)タスクバーには表示されない
(2)Alt+TABでは自前のアイコンが表示される
(3)システムメニューがない
(4)クローズボックスはある
これをどうやって実現するかが腕の見せ所、ちゅーかきづけばすぐ、きづかないいずみが阿呆^^;;
- 6 名前:いずみ@インフォシティ 投稿日:2001/12/17(月) 14:12:42
- がー、プロパティシートにコネクションポイントつけとくべきだった…(涙)
Script: mjuz float bbs ver.1.32