• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VC++でダイアログ(Editボックス)を不可視にしたい)

VC++でダイアログ(Editボックス)を非表示にする方法

このQ&Aのポイント
  • VC++でEditボックスの値が空の場合に非表示にする方法について教えてください。
  • VBの場合はテキストボックスの値が空の場合にVisibleプロパティをFalseにするだけで簡単に非表示にできますが、VC++ではどの機能を使えば良いのか分からないとのことです。
  • MSDNで調べていたらShow関数を使えば可能かもしれませんが、具体的な使い方が分からないとのことです。

質問者が選んだベストアンサー

  • ベストアンサー
  • itohh
  • ベストアンサー率45% (210/459)
回答No.1

こんにちは。itohhといいます。 VC++でエディットボックスなどを操作するとき、ちょっとしたコツがあります。 VC++もC++ですから、エディットボックスのCEditクラスも、もちろん、いろいろなクラスを 継承して作られています。 継承しているクラスのパブリックメンバ関数は自分のメンバ関数のごとく使用できるのは ご存じですよね? (CEditクラスの概要が説明されているページで細長い箱で継承クラスを表していますよ。) 今回のエディットボックスのCEditクラスもMSDNライブラリで確認してもらえば判りますが、 CWndクラスを継承しています。このクラスは、ウィンドウを操作するためのクラスです。 この中に表示・非表示するためのメンバ関数がありますから、その関数を使用することにより実現 できます。 使用方法ですが。 (1)クラスウィザードでエディットボックスのメンバ変数をCEditクラスで作ってください。    とりあえず、CEditクラスでm_Edit1という名前のメンバ変数とします。    (1つのエディットボックスに、すでに文字列用のメンバ変数が設定されていても追加で     メンバ変数を設定しても大丈夫ですよ。) (2)非表示にするときは上記のメンバ変数で。    m_Edit1.ShowWindow(SW_HIDE); (3)表示にするときは上記のメンバ変数で。    m_Edit1.ShowWindow(SW_SHOW); 一度、MSDNライブラリを確認してみてください。いろいろな操作ができますよ。

XV250Virgo
質問者

お礼

 こんにちは、XV250Virgoと申します。 分かりやすくご親切な解答どうも有難う御座いました! おかげさまで、無事エディットボックスとスタティックテキストの項目を不可視にする事が出来ました。  なるほど、『ShowWindow』関数で出来るのですか。 MSDNを読んでいると、ウィンドウ単位でないと出来ないものと思っておりました。 その先入観が有った為か、インターネットで調べた時も、『ShowWindow』はウィンドウ消去にしか使っていなかったように思えます。 結局『Show』関数は使わなくて良かったのですね。  色々と有難う御座いました。 これで、書籍、インターネット等で5時間以上探していた苦労が報われました。 本当に有難う御座います。 それでは失礼します。

すると、全ての回答が全文表示されます。