- 締切済み
VC++ VS2005 タブコントロールに貼り付けたリストコントロールが消える
こんばんは。 早速ですが質問です。 VC++ .NET MFCプロジェクトで リソースエディタでダイアログにタブコントロールを貼り付け(1)、 そこに同じようにリソースエディタでリストコントロールとボタンを 貼り付けたダイアログを作りました(2)。 1のタブコントロール上に2をソースで貼り付け 表示させ、2のInitDialogとボタンクリックのイベントを作成して Listコントロールに値を入れるということをしたのですが リストコントロールの表示が消えてしまいます。 マウスでリストコントロールが貼りついている位置にカーソルを当てるとその部分がでてきます。 原因のお分かりになるかたご回答よろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- Oh-Orange
- ベストアンサー率63% (854/1345)
★アドバイス ・リストコントロールとボタンのダイアログ(2)のスタイルはどうなっていますか? リソースエディタで DS_CONTROL、WS_CHILD にチェックしていますか? ・普通のダイアログを貼り付けて表示させようとすると消えます。 このとき、マウスでコントロールの上に乗せるとコントロールが浮かび上がります。 よって、ダイアログ(2)のスタイルに DS_CONTROL、WS_CHILD を追加して下さい。 リソース: IDD_PARENT DIALOGEX 0, 0, 300, 160 STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "親ダイアログ" FONT 8, "MS ゴシック", 400, 0, 0x80 BEGIN : タブコントロール : END IDD_DIALOG2 DIALOGEX 0, 0, 100, 80 STYLE DS_SETFONT | DS_CONTROL | WS_CHILD ←これが必要 FONT 8, "MS ゴシック", 400, 0, 0x80 BEGIN : リストコントロール ボタンコントロール : END 最後に: ・リソースファイル(rc)を直接エディタなどで追加して下さい。 リソースエディタでも出来ますが、項目名を忘れました。 エディタで DS_CONTROL、WS_CHILD を追加した後にリソースエディタを起動して確認して下さい。 チェックが true になっている項目が DS_CONTROL、WS_CHILD です。 ・タブコントロールがある親のダイアログは普通に作成して、貼り付けるダイアログ(2)には DS_CONTROL、WS_CHILD を追加して下さい。よって、2つのダイアログをリソースファイルで 定義します。決してタブコントロール上にソースで貼り付けてはいけません。 1つのダイアログをコントロールと同じようにソースで貼り付けないといけないのです。 ・以上。これで多分、上手く表示されると思います。