コントロールボタンを見えなくする

[戻る]
koko 2006/05/18(木) 14:06:44
最近、VC++をはじめた初心者です。
ダイアログボックスの機能を使って、コントロールボタンを一回押したらボタン自体が
消えるようにみせたいと思っているのですが方法がわかりません。
何かいい方法はありませんか?
環境は、WindowsXP,Visual stdio.net2003,MFCは未使用です。

Blue 2006/05/18(木) 14:10:10
> コントロールボタン
が、コマンドボタンならば、ShowWindow で表示/非表示 が設定できます。

koko 2006/05/18(木) 16:46:07
Blueさん、ありがとうございます。
 たしかに消すことができました。あと、もうひとつ質問いいですか?
例えば、その消すコマンドを利用して、エディタボックスと重なってるアイコンを消す
ことができると思い実行したのですが、ボタンが押される前に、エディタの内容がボタ
ンをすり抜けて表示されてしまいます。
 なにかいい方法はありませんか?

Blue 2006/05/18(木) 16:50:01
ちょっと状況が良くわかりません。
ダイアログ上のコントロールの位置関係(レイアウト)をしめしてもらえますか?

BML 2006/05/18(木) 17:04:56
何となく思ったので。

もしエディタボックスがアイコンに隠れているのなら、
初めはShowWindowで非表示にしておいて
アイコンを消すタイミングで入れ替わりに表示させる手も…

大きく的外してるかも。

koko 2006/05/18(木) 17:28:35
レイアウト図
ボタン
↓
__________________
|   エディタボックス            |
|   ↓              |
| _______________________________ |
|  |                             | |
|  |                             | |
|  |                             | |
| |               | |
| |               | |
| |_____________________________| |
|_________________|

こんな感じです。外のボタンを押したら、エディタに書かれた部分の文字が
見える。

REE 2006/05/18(木) 17:33:34
ボタンの中にエディットボックスがあるのですか?
でアイコンはどこでしょう?

# エディタボックス→エディットボックス

koko 2006/05/18(木) 17:44:58
すいません、アイコンは書き間違いでした。
ボタンとエディットボックスだけです。

たいちう 2006/05/18(木) 17:53:29
はじめはエディットボックスを非表示にしておいて、
ボタンを押されたら、ボタン非表示のエディット表示にすれば?

BMLさんの書いていることと同じことですが。

BML 2006/05/18(木) 17:56:17
koko さま

ボタンを非表示にする前は、図に描いてもらったように
ボタンとエディットボックスが見えてる状態なんですか?


REE さま

>エディタボックス→エディットボックス
僕もレスしてから気付きました。←早く気付け
訂正ありがとうございます。

koko 2006/05/18(木) 18:05:57
はい、はじめの状態では、ボタンの中にボックスが表示されてしまっている状態です。

BML 2006/05/18(木) 18:10:17
koko さま

何だかわからなくなってきました…
>ボタンの中にボックスが表示されてしまっている
しまっている、て表現は、この状態は仕様どおりではないということですか?
表示されてていいのでしょうか、駄目なのでしょうか。

koko 2006/05/18(木) 18:20:14
説明がうまくなくて、申し訳ありません。
えっと、最初の見た目では、
ボタンだけを見せるようにしたいのです。
そのボタンを押したら、ボタンが消え、エディットボックスが現れたようにする。
って感じです。
 最初から、エディットボックスが見えていたらまずいのです。

Blue 2006/05/18(木) 18:25:41
ダイアログの初期化処理で、エディットボックスを非表示にする。
ボタンをクリックすると、ボタンを非表示にすし、エディットボックスを表示する。

ということでよいのでは?

koko 2006/05/18(木) 18:32:18
なるほど、ところでエディットボックスを表示させるにはどうしたらいいんでしょう
か?showWindowでHelpしたんですが、消し方はわかったのですが、逆に表示の仕方がわ
かりません。

たいちう 2006/05/18(木) 18:44:37
CWnd *wnd = ...;
wnd->ShowWindow(SW_SHOW);

koko 2006/05/18(木) 19:00:18
[[解決]]
みなさまどうもありがとうございました。無事解決しました。
言われたとおり、
初期化で処理で、
・ボタンを表示
・エディットボックスを非表示

コマンドで、
・ShowWindow(ハンドル名,SW_HIDE);//ボタンの非表示
・ShowWindow(ハンドル名,SW_SHOW);//ボックスの表示
でいけました。

REE 2006/05/18(木) 19:01:35
>showWindowでHelpしたんですが、消し方はわかったのですが、逆に表示の仕方がわ
かりません。

本当ですか?
SW_HIDEをSW_SHOWにするだけですが・・・

たいちう 2006/05/18(木) 19:12:54
非MFCだったんですね。最初に書いてありましたね。

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