皆さん
お世話になっております。
最近VC++を勉強し始めた。
初心者なので、下記の2問を教えていただきたいです。
1.実行中、どうやってあるボタンを不可視にする。
例:Button1を押したら、Button2を不可視にする。
2.画面上にあるObjectのタブ順番の設定がわかりません、教えてください。
例:画面上に先にButton1を作ります、後Button2を追加、TAB順番がButton1→
Button2ができますが、もし、Button2→Buton1にしたい場合、どうすればいいですが。
1.
ShowWindowを使う
2.
SetWindowPosでZオーダを変える
ueharaさんへ。VC++ のバージョンはいくつですか?? VC++6.0?? VC++.NETです
か??
.NETはさわったことがないのでなんともいえないですが・・・・
VC++6.0を前提に話をさせていただきます。また各関数の詳細はMSDNとかを参照してく
ださい。
1.について
i) まずは GetDlgItem()でコントロールのポインタを取得
ii) 取得したポインタを利用して ShowWindow()で非表示にする。
2.について
画面配置をする画面ありますよね??そこで メインメニューに「レイアウト」-「タ
ブオーダ」(画面上で Ctrl+ D )があるので そこでタブの順序を設定する。
ドルドルさん言われていますが、
とにかく、毎回、ご自分が使われているVC++のバージョンとか
使っているPCの環境とかは書く様にした方が良いです。
前の貴方の発言があったとしてもそれを見ている人ばかりが
見てくれる訳ではありませんし、
見たことがある人でも開発環境の内容まで覚えている人はほとんどいないでしょう。
詳しくは追加発言のところにある「使用上の注意」を見てください。
1.については方法が色々ありすぎて書ききれませんけれど、
ドルドルさんが書いている方法以外ならクラスウィザードでコントロールに対応する
メンバー変数を作成しておいて、そのメンバー変数に対して操作をするという手もあります。
この場合は、コントロール変数に対してShowWindowを呼ぶ事になります。
基本的にコントロールもウインドウの一種なのでウインドウに対する制御と全く同じです。
2.についてはドルドルさんの方法が視覚的に操作できるので良いかもしれませんね。
プログラムから操作する方法もありますけれど、タブオーダーを動的に変えるというのは
操作する側から見ると混乱の元になるのであんまりやりませんし。
PATIOさん、 ドルドル さん、超初心者 さん
ありがとうございました。
解決しました、僕は本当に超超初心者ですね。恥ずかしい・・・。
解決方法が次のとおり:
①ShowWindow(0)を使う、対象不可視ができる;
②ドルドルさんの言うとおりです。
なお、PATIOさんの指摘のように、今度詳しく書きます。
ありがとうございました。
ShowWindowを使うのでしたらきちんと定数を使った方が良いと思いますよ。
ShowWindow(SW_HIDE);で不可視。
ShowWindow(SW_SHOW);で可視。
実際にはもっと色々ありますのでHELP(MSDN)で調べて見てください。
その場面場面に合ったものが用意されています。