- PR -

Windows標準の色をプログラムから変更したい

1
投稿者投稿内容
ヤクルト400
会議室デビュー日: 2004/02/16
投稿数: 18
投稿日時: 2004-03-02 13:24
DataGridやリストボックスの選択色は
コントロールパネル->画面->画面のプロパティのデザインタブ->詳細設定
内で「選択項目」で設定している色が使用されているようですが、これをプログラム内で
変更することはできないでしょうか?

コントロールパネルから設定すると、たとえば画面でマイコンピュータのアイコンを選択しても
その色で選択状態になって見栄えがよくないので、プログラム内で最初に変更して、終了時に
元に戻すようにしたいのです。

よろしくお願いします。
ヤクルト400
会議室デビュー日: 2004/02/16
投稿数: 18
投稿日時: 2004-03-04 21:28
再度、自分で書込みです。

DataGridを使用したことのある方は、セルの色をどのように設定されたのでしょうか?
Windows標準の色を変更しなくても、DataGridのテーブルスタイルなどで指定した色が
ちゃんと反映されるのでしょうか?
私はいくら試してみても、カレントセルの文字の部分が紺色で、文字以外の背景部分が灰色に
なってしまうんですが。

よろしければ情報ください。
お願いします。

Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-03-05 11:00
 別スレッドに書き込んだ「ヒントの色で表示したら」でやったのですが、「ヒントの色」を拾ったのか、「Windowsの標準配色」を拾ったのか。。。

 前の会社でのプロジェクトで、そのプロジェクトのソースは**していないので、記憶がかなりあやふやですが、レジストリにアクセスしたように思います。
ヤクルト400
会議室デビュー日: 2004/02/16
投稿数: 18
投稿日時: 2004-03-05 13:21
ヤクルト400です。

レジストリにアクセスされたということは、プロパティで設定しても反映されなかったということですね・・・
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-03-05 14:19
引用:

ヤクルト400さんの書き込み (2004-03-05 13:21) より:
ヤクルト400です。

レジストリにアクセスされたということは、プロパティで設定しても反映されなかったということですね・・・



違います、違います。その値を取るために、レジストリにアクセスした、です。

結局、何でもかんでもレジストリに入っているはずなので、APIが見つからなかったらレジストリを探してみる、と。。。
#取れたのだから、設定もできるだろう、ということです。
ゆうじゅん
ぬし
会議室デビュー日: 2004/01/16
投稿数: 347
投稿日時: 2004-03-05 14:44
これですかね

http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/jpsysinf/html/_win32_setsyscolors.asp
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-03-05 15:27
引用:

ゆうじゅんさんの書き込み (2004-03-05 14:44) より:
これですかね

http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/jpsysinf/html/_win32_setsyscolors.asp


 フォローありがとうございます。そうみたいですね。
引用:

解説

SetSysColors 関数は、すべてのウィンドウへ WM_SYSCOLORCHANGE メッセージを送信し、色が変更されたことを通知します。また、Windows システムに対して、現在表示されているすべてのウィンドウのうち、影響を受ける部分を再描画するよう指示します。

SetSysColors 関数による色の変更は、現在のセッションでのみ有効です。システムが終了する時点で、新しい色は保存されません。


これって、今表示されている全てのウインドウが、セットしたところだけ再描画される???う〜ん、怖いかも。
1

スキルアップ/キャリアアップ(JOB@IT)