- PR -

ColorDialogに表示される48色を調べる事は可能?

1
投稿者投稿内容
ys
会議室デビュー日: 2008/10/05
投稿数: 1
投稿日時: 2008-10-05 13:15
VisualStudio2005にてC#を使ってコーディング中です。

System.Windows.FormsのColorDialogを使用しているのですが
ColorDialogの上部に表示されている
48色(6×8)以外の色を選択していたら
CustomColorsに色を追加して表示をしたいのです。

現在、上部に表示されている48色の色情報を前もって取得しておき
それらと比較して全て違っていたらCustomColorsに追加する方法を検討中です。
この48色を判断する他の方法はあるのでしょうか?


蛇足ですが、System.Drawing.Colorの
IsKnownColor、IsNamedColor、IsSystemColor は、
適合色が違うため正しい結果が得られず断念しました。

スレッド作成が不慣れなため、情報不足、不適切な表現などありましたら
改めますので遠慮なくご指摘いただけると幸いです。

以上、よろしくお願いいたします。

_________________


[ メッセージ編集済み 編集者: ys 編集日時 2008-10-05 13:16 ]
たくボン
会議室デビュー日: 2008/10/06
投稿数: 5
投稿日時: 2008-10-06 10:58
ColorDialogの基本色は固定の色なので、前もって調べておけばいいんじゃないかな?

動的に色を取得したいのであれば、基本色のプロパティは公開されていない+基本色のエリアは単なる矩形(Staticクラス)なので、考え方としては、

1. ColorDialogのハンドルを取得
2. "基本色(B):"でウインドウ検索
3. 2で取得したWindowの次のWindowが「基本色」を描画している矩形。
4. 縦、横を分割して座標のドット色を取る。
こんな感じかな。

IsKnownColor、IsNamedColor、IsSystemColorはまったく別の意味なので関係ありませんね。
1

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