- - PR -
ColorDialogに表示される48色を調べる事は可能?
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 10:58
ColorDialogの基本色は固定の色なので、前もって調べておけばいいんじゃないかな?
動的に色を取得したいのであれば、基本色のプロパティは公開されていない+基本色のエリアは単なる矩形(Staticクラス)なので、考え方としては、 1. ColorDialogのハンドルを取得 2. "基本色(B):"でウインドウ検索 3. 2で取得したWindowの次のWindowが「基本色」を描画している矩形。 4. 縦、横を分割して座標のドット色を取る。 こんな感じかな。 IsKnownColor、IsNamedColor、IsSystemColorはまったく別の意味なので関係ありませんね。 |
1