コンボボックスの中のエディットボックスの背景色を変えたい

[戻る]
天然 2003/10/02(木) 09:50:51
いつも参考にしています。
環境 win2000/VC++6.0/MFCです

ドロップダウンリストのコンボボックスを使用していてリストを選択した後のコンボの中のエデ
ィットボックスの背景色を変えたいのですが、何方かお教えください。
普通は、リストを選択した後はエディットボックスの背景色は青色になると思うのですが、
これを、白にしたいのです。
宜しくお願いします。

秋衛門 2003/10/07(火) 18:44:44
リストの選択後、フォーカス外したらいい、とかそんな話? ちゃう?
他には、ディスプレイの照度を限界まであげたら白っぽく見えるよ。だめかね?

天然 2003/10/10(金) 16:51:09
秋衛門さんご返信ありがとうございます。
数日前に発言したのに何方からも返信がなくて難しい質問をしたのか意味が分からなかったのか
どちらかだと思うのですが、ずっとあきらめていました。で久しぶりにサイトを開いたら返信が
あったので良かったです。

感想はこのぐらいにして本題に入ります。
コンボのリストの選択後のフォーカスをはずしたいのですが、OnKillFocusは使用しないでフォ
ーカスをはずす処理はないでしょうか?
宜しくお願いします。

ku 2003/10/10(金) 17:40:43
> 普通は、リストを選択した後はエディットボックスの背景色は青色になると思うのですが、
これはフォーカスを失えば良いのか、
フォーカスを持っている場合の色を指定したいのかどちらかなのか分からない

フォーカスを失いたいなら、他のコントロールへSetFocus()すればよいと思う

フォーカスを持っている時の背景色を変更したいのなら
このページを参考にしてうまく作ればできそうな感じです
http://www.athomejp.com/goldfish/mfc/combo/2lineitem.html
最後の方にあるDarwItem()のときに
if (lpDrawItemStruct->itemState & ODS_COMBOBOXEDIT) {が真の場合
CBrushの色を指定すれば良さそうだけど

... 2003/10/17(金) 23:35:00
2ch風に言うなら

age

いっぽ 2003/10/18(土) 14:45:12
なんでageるの?
ageちゃいけないって意味ではなく、
何でageる必要があるのって意味

天然 2003/10/23(木) 09:54:20
[[解決]]
皆さんありがとうございました。

SunPac 2003/10/23(木) 14:57:46
フォーカスをコンボから移したいと仮定します。

まずそのダイアログがモーダルかモードレスか分かりませんが、
もしモーダルの場合はダイアログ自体のフォーカスは失えません。
そこで同じダイアログの他のコントロールにフォーカスを移せばいいわけです。
例えばOKボタン(あれば、ですけど)とか。
私はMFC使わないのでAPI流ですが、GetDlgItem()でダイアログのコントロールの
ハンドルを取得してSetFocus()すればコンボボックスのフォーカスは失います。
タイミングはWM_COMMAND(OnCommand()ハンドラでしたっけ?)でCBN_SELENDOKが
きた時です。
MFCじゃないけど参考になれば幸いです。

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