掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
TEditやTComboBoxのEnabled := False時の動作の背景色について (ID:35844)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
SDKレベルでいうと、通常はコントロールから親ウィンドウにWM_CTLCOLOREDITなどのメッセージが飛んできます。 それを何も処理しないでDefWindowProcに渡すと、Disabledの時には灰色になるという仕組みです。 Delphiの場合、TControl.Colorプロパティで背景色を変更できるので VCL内でWM_CTLCOLORxxxを処理して色を設定していたと思います。 そこでEnabledによって処理を変えていないのは、考え漏れというよりは 「Enabled=falseだとColorの設定が効かない」 というクレームを回避するために、あえてやっていないのだと思われます。 私はTEditなどの標準コントロールから派生クラスを一式作り、Enabledが変わったら自動的にColorを変更するようにして使っています。 OSの標準動作に合わせるなら、フォームの方でWM_CTLCOLOR系(あるいは対応するCM系メッセージ)を乗っ取ってDefWndProcに渡してやるといいのかもしれません。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.