リソースとして作成したダイアログ1が、リソースの中にはない標準的なOKとキャンセル
ボタンの有るダイアログ2の上に重なって乗っている例を見ました。
リソースにないダイアログ2はどのようにして作成するのですか?
それがコードを書いて実現しているとすると、どのようなコードを書けば
良いのでしょうか?
よろしくお願いいたします。
メッセージボックスの事ですか?
島さんレスありがとうございます。
そうですね。メッセージボックスと言えばそうかも知れません。
メッセージボックスとダイアログは見た目同じですよね。
http://www2.famille.ne.jp/~chiba/software/OboeGaki/cpidl.html
このサイトにあるシン覚え書をDLして実行すると、タスクトレイにアイコンが表示
されるので、右クリックして新規作成をクリックすると質問の画面が出ます。
http://www2.famille.ne.jp/~chiba/software/OboeGaki/forDev/index.html
ここからは、ソースがDLできます。
最終的に知りたいことは、どうやって画面に付箋紙を貼っているかです。
DLしてみました。
もしかしてタブコントロールの事でしょうか?
プロパティシートの事のようですね。
>最終的に知りたいことは、どうやって画面に付箋紙を貼っているかです。
そうなら、こっちをタイトルにしたほうがいいと思う。
メモ紙は、CMemoChip ( 基本は、CWnd )で描画しているようですね。
ひろぴーさん、7of9さん、レスありがとうございます。
プロパティーシートというのですね。
1.どうして、実行するとダイアログの上にタブコントロールが乗っている
画面が表示されるのに、リソースの画面にはその状態の画面がないのですか?
>>最終的に知りたいことは、どうやって画面に付箋紙を貼っているかです。
>そうなら、こっちをタイトルにしたほうがいいと思う。
すみません。プロパティシートのことも知りたかったので。。。。
>メモ紙は、CMemoChip ( 基本は、CWnd )で描画しているようですね。
2.CMemoChip と CWnd で検索したら、検索結果が山ほど出てきてしまい、
実際にどのコードが最終的に描画を指示しているのか分かりませんでした。
新規作成のプロパティシートのOKボタンを押すと、どのコードが実行されるのでしょう
か?
よろしくお願いします。
> 1.どうして、実行するとダイアログの上にタブコントロールが乗っている
> 画面が表示されるのに、リソースの画面にはその状態の画面がないのですか?
ダイアログはCPropertySheetから派生されていると思われます。
CPropertySheet::AddPage()でページ(タブ)を追加します。
追加するページはCPropertyPageから派生されているはずです。
リソースエディタではダイアログのように見えますが、追加するページになります。
詳しくはMSDNを参照して下さい。
>1.どうして、実行するとダイアログの上にタブコントロールが乗っている
> 画面が表示されるのに、リソースの画面にはその状態の画面がないのですか?
リソースエディターにそういう機能が無いからです
>最終的に知りたいことは、どうやって画面に付箋紙を貼っているかです。
これは、別に質問を起こすべきでしょう。
同じスレッド内にいくつもの質問を乱立させるのは良くないです。
下手をすると一つのスレッドが話題を変えながらどんどん長くなりかねない。
こっちの質問は別に質問を起こしてそっちでやってください。
>1.どうして、実行するとダイアログの上にタブコントロールが乗っている
> 画面が表示されるのに、リソースの画面にはその状態の画面がないのですか?
タブコントロールというのは、単に画面を切り替えるためのきっかけを作るだけで
画面そのものを切り替える機能はありません。
ですから、通常は各タブに対応する画面を別々のダイアログリソースとして作成して
それぞれをタブコントロールの子画面にします。
ウインドウを作成するときはモードレスダイアログにします。
あとは、タブの操作にあわせて対応する画面の表示/非表示を切り替えます。
プロパティシートというのは、この辺の機能をカプセル化したものです。
この場合、土台のリソースは必要なくなります。
プロパティシートに使い方を調べれば自ずとわかるはずですから自分で調べましょう。
プロパティシートは自前でタブコントロールを使うよりも簡単に出来ますが、
画面デザイン等は制約を受けます。
デザインに制約を受けたくない場合は、自前で土台のダイアログから起こします。
ひろぴーさん、島さん、PATIOさん、回答ありがとう御座います。
>プロパティシートというのは、この辺の機能をカプセル化したものです。
>この場合、土台のリソースは必要なくなります。
これでよく分かりました。
プロパティシートについて、調べてみます。