ダイアログの上にダイアログを乗せるには? – プログラミング – Home

ダイアログの上にダイアログを乗せるには...
 
通知
すべてクリア

[解決済] ダイアログの上にダイアログを乗せるには?


M&K
 M&K
(@M&K)
ゲスト
結合: 22年前
投稿: 15
Topic starter  

リソースとして作成したダイアログ1が、リソースの中にはない標準的なOKとキャンセル
ボタンの有るダイアログ2の上に重なって乗っている例を見ました。

リソースにないダイアログ2はどのようにして作成するのですか?
それがコードを書いて実現しているとすると、どのようなコードを書けば
良いのでしょうか?

よろしくお願いいたします。


引用未解決
トピックタグ
島
 島
(@島)
ゲスト
結合: 23年前
投稿: 238
 

メッセージボックスの事ですか?


返信引用
M&K
 M&K
(@M&K)
ゲスト
結合: 22年前
投稿: 15
Topic starter  

島さんレスありがとうございます。

そうですね。メッセージボックスと言えばそうかも知れません。
メッセージボックスとダイアログは見た目同じですよね。

http://www2.famille.ne.jp/~chiba/software/OboeGaki/cpidl.html
このサイトにあるシン覚え書をDLして実行すると、タスクトレイにアイコンが表示
されるので、右クリックして新規作成をクリックすると質問の画面が出ます。

http://www2.famille.ne.jp/~chiba/software/OboeGaki/forDev/index.html
ここからは、ソースがDLできます。

最終的に知りたいことは、どうやって画面に付箋紙を貼っているかです。


返信引用
ひろぴー
 ひろぴー
(@ひろぴー)
ゲスト
結合: 22年前
投稿: 182
 

DLしてみました。
もしかしてタブコントロールの事でしょうか?


返信引用
7of9
 7of9
(@7of9)
ゲスト
結合: 22年前
投稿: 14
 

プロパティシートの事のようですね。

>最終的に知りたいことは、どうやって画面に付箋紙を貼っているかです。
そうなら、こっちをタイトルにしたほうがいいと思う。

メモ紙は、CMemoChip ( 基本は、CWnd )で描画しているようですね。


返信引用
M&K
 M&K
(@M&K)
ゲスト
結合: 22年前
投稿: 15
Topic starter  

ひろぴーさん、7of9さん、レスありがとうございます。

プロパティーシートというのですね。

1.どうして、実行するとダイアログの上にタブコントロールが乗っている
  画面が表示されるのに、リソースの画面にはその状態の画面がないのですか?

>>最終的に知りたいことは、どうやって画面に付箋紙を貼っているかです。
>そうなら、こっちをタイトルにしたほうがいいと思う。
すみません。プロパティシートのことも知りたかったので。。。。

>メモ紙は、CMemoChip ( 基本は、CWnd )で描画しているようですね。
2.CMemoChip と CWnd で検索したら、検索結果が山ほど出てきてしまい、
  実際にどのコードが最終的に描画を指示しているのか分かりませんでした。
  新規作成のプロパティシートのOKボタンを押すと、どのコードが実行されるのでしょう
か?

よろしくお願いします。


返信引用
ひろぴー
 ひろぴー
(@ひろぴー)
ゲスト
結合: 22年前
投稿: 182
 

> 1.どうして、実行するとダイアログの上にタブコントロールが乗っている
>   画面が表示されるのに、リソースの画面にはその状態の画面がないのですか?

ダイアログはCPropertySheetから派生されていると思われます。
CPropertySheet::AddPage()でページ(タブ)を追加します。
追加するページはCPropertyPageから派生されているはずです。
リソースエディタではダイアログのように見えますが、追加するページになります。

詳しくはMSDNを参照して下さい。


返信引用
島
 島
(@島)
ゲスト
結合: 23年前
投稿: 238
 

>1.どうして、実行するとダイアログの上にタブコントロールが乗っている
>  画面が表示されるのに、リソースの画面にはその状態の画面がないのですか?

リソースエディターにそういう機能が無いからです


返信引用
PATIO
(@patio)
Famed Member
結合: 4年前
投稿: 2660
 

>最終的に知りたいことは、どうやって画面に付箋紙を貼っているかです。
これは、別に質問を起こすべきでしょう。
同じスレッド内にいくつもの質問を乱立させるのは良くないです。
下手をすると一つのスレッドが話題を変えながらどんどん長くなりかねない。
こっちの質問は別に質問を起こしてそっちでやってください。

>1.どうして、実行するとダイアログの上にタブコントロールが乗っている
>  画面が表示されるのに、リソースの画面にはその状態の画面がないのですか?

タブコントロールというのは、単に画面を切り替えるためのきっかけを作るだけで
画面そのものを切り替える機能はありません。
ですから、通常は各タブに対応する画面を別々のダイアログリソースとして作成して
それぞれをタブコントロールの子画面にします。
ウインドウを作成するときはモードレスダイアログにします。
あとは、タブの操作にあわせて対応する画面の表示/非表示を切り替えます。
プロパティシートというのは、この辺の機能をカプセル化したものです。
この場合、土台のリソースは必要なくなります。
プロパティシートに使い方を調べれば自ずとわかるはずですから自分で調べましょう。
プロパティシートは自前でタブコントロールを使うよりも簡単に出来ますが、
画面デザイン等は制約を受けます。
デザインに制約を受けたくない場合は、自前で土台のダイアログから起こします。


返信引用
M&K
 M&K
(@M&K)
ゲスト
結合: 22年前
投稿: 15
Topic starter  

ひろぴーさん、島さん、PATIOさん、回答ありがとう御座います。

>プロパティシートというのは、この辺の機能をカプセル化したものです。
>この場合、土台のリソースは必要なくなります。
これでよく分かりました。
プロパティシートについて、調べてみます。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました