コントロールが重なったときの処理方法について

[戻る]
OM [E-Mail] 2006/07/01(土) 14:46:29
みなさん、はじめまして、OMです。

早速質問させてください。
VC++ 6.0でのダイアログベースのプログラムですが、
ListBoxを利用しています。通常隠していますが、ある
ボタンを押すと出てくるようにしています。そのとき
他のEditコントロールとかと重なると、ListBoxの機能
を正しく利用できません。
つまり、ListBoxからデータを選択したいのに、その下に
あるEditコントロールに影響されて、正しく選択でき
ないわけです。

このようにコントロールが重なっているときでも上にある
コントロールしか効かない使用法をぜひご教授願いたいと
思います。よろしくお願いします。

三草 2006/07/01(土) 20:09:39
回答ではありませんが、重ならないようにするのはダメなのでしょうか?
EditをShowWindowで非表示にしたり、MoveWindowで移動させたり。。。

Ban 2006/07/02(日) 00:01:37
現象がよくわかりませんが、
再現コードとかつくれません
?
SetWindowPosあたりでZオー
ダをいじっても改善されませ
んか?

超初心者 2006/07/02(日) 00:53:46
Zオーダは重要だね。

ダイアログのコントロールはWS_CLIPCHILDRENが設定されていないと
兄弟ウィンドウにも描画できてしまうので変になるよ。
逆にそれを利用してグループボックスは中がくり抜かれているんだけど。
それでうまくいくかは分かりませんけど。

OM 2006/07/03(月) 10:27:14
[[解決]]
みなさん、ご返事にたいへんありがとうございます。

ListBoxの下に隠されたコントロールをShowWindowで非表示にする方法で
解決しました。

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