ダイアログバーの上にダイアログを配置

[戻る]
まかろに 2004/10/24(日) 01:49:21
いつも大変お世話になってます。

早速質問なのですが、ダイアログバーの上にダイアログを置くというのは
できるのでしょうか?

というのも、ダイアログバーの上に普通にコントロールを配置していたところ
途中から急にコントロールの処理が反応しなくなりました。
処理としては、普通に ShowWindow で表示/非表示していただけです。
かなりの数のコントロールをしかも重ねて1つのダイアログバーに配置したので
その辺りに原因があるのでしょうか? ( 数としては50ちょっとです )
ちなみに、配置といってもダイアログーバーと同じ大きさのダイアログを作り
そこにコントロールを配置して、全選択のコピーペーストで
ダイアログバーに張り付けています。

質問が2種類になってしまい、申し訳ありませんが
ご教示の程、よろしくお願い致します。

まかろに 2004/10/24(日) 19:11:25
自己レスですいません。

調べてみたところ、コントロールが反応しなくなるというのは
コピペしたときにIDが変わっているからでは…という感じがしました。

  コピー前   コピー後
IDC_EDIT_01 → IDC_EDIT_02  という感じで。

それが原因なら納得なのですが、そしたら本来のIDC_EDIT_01が無くなってる以上
GetDlgItem で見つからずにプログラムが停止するのかと思いきや
そういうこともなく普通に動いてるわけで…なんなんでしょう?

KING・王 2004/10/25(月) 12:35:31
#VSのリソースビューからリソースを編集していると状況と仮定して話します。
#違っていたら無視して下さい。

IDC_EDIT_01のダイアログをコピーすると、IDC_EDIT_2になったような気がしますが。。。

> それが原因なら納得なのですが、そしたら本来のIDC_EDIT_01が無くなってる以上
GetDlgItem で見つからずにプログラムが停止するのかと思いきや
そういうこともなく普通に動いてるわけで…なんなんでしょう?

コピーなら、IDC_EDIT_01はなくならないはずです。

取りあえず、全てのコントロールのプロパティから、IDの確認と、
resource.hを開いて、それぞれのIDの定義されている値を確認してみてはどうですか?

まかろに 2004/10/25(月) 20:39:01
[[解決]]
ご返答ありがとうございます。

恥ずかしながら、resource.h の存在を知りませんでした…
なるほど、こうやって定義してあるんですね。
いろいろ謎が解けた気がします。
ありがとうございました。

本当に、いつも素人みたいな質問ばかりで恐縮ですが
今後ともよろしくお願いいたします。

古いスレッドには追加発言できません。