プッシュボタン型ラジオボタンの色を変更するには? – プログラミング – Home

プッシュボタン型ラジオボタンの色を変更...
 
通知
すべてクリア

[解決済] プッシュボタン型ラジオボタンの色を変更するには?


たけ
 たけ
(@たけ)
ゲスト
結合: 25年前
投稿: 116
Topic starter  

プッシュボタン型ラジオボタンの色を任意の色に
変更したいのです。どなたかご存知の方、よろし
くお願いします。


引用未解決
トピックタグ
おきゅとぱす
 おきゅとぱす
(@おきゅとぱす)
ゲスト
結合: 25年前
投稿: 15
 

DrawFrameControl で描けそうなやつは,あまり簡単に色の変更とかはできません.
ようするに,融通がきかないんです.
オーナードローかサブクラス化をするのが手っ取り早いかと思います.

どうしても面倒くさければ,システムカラーを変えちゃうとか(^^;


返信引用
たけ
 たけ
(@たけ)
ゲスト
結合: 25年前
投稿: 116
Topic starter  

こんにちは。
おきゅとぱすさん、解答ありがとうございます。

>オーナードローかサブクラス化をするのが手っ取り早いかと思います.

ラジオボタンのプロパティにオーナードローのチェックボックスって
ないですよね?ってゆうことは、オーナードローにする場合は自分で
BS_OWNERDRAWスタイルを追加してやらなければいけないってことですか?
もしくは自分でCreateするとか?


返信引用
おきゅとぱす
 おきゅとぱす
(@おきゅとぱす)
ゲスト
結合: 25年前
投稿: 15
 

たしかにないですね・・・.
いや,こんなときはたいていオーナードローかサブクラス化だろうと思って,
適当なことを書いてしまいました.いや,すみません.
っていうか,僕,コード読みにくくなるから,あんまりオーナードローしないもんで.
というわけで,前言訂正ということで,サブクラス化をお勧めします.
いや,申し訳ないです.


返信引用
たけ
 たけ
(@たけ)
ゲスト
結合: 25年前
投稿: 116
Topic starter  

いえいえそんな…こちらこそ申し訳ないです。
サブクラス化でやってみたいと思います。
おきゅとぱすさん、どうもありがとうございました。


返信引用
おきゅとぱす
 おきゅとぱす
(@おきゅとぱす)
ゲスト
結合: 25年前
投稿: 15
 

こんにちは.

[解決]がついた後になんなんですが・・・.
ちょっと試してみたら,オーナードローじゃないとだめみたいなので,
ちょっとレスつけときます.気づいてくれるかな・・・.

おおざっぱに言って,
ラジオボタンでも↓のような感じでオーナードローできます.

class CColorRadio : public CButton
{
public:
  void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);
  ...
  DECLARE_MESSAGE_MAP()
};

class CTestDialog : public CDialog
{
private:
  CColorRadio ColorRadio;

public:
  BOOL OnInitDialog();
  ...
  DECLARE_MESSAGE_MAP()
};

// サブクラス化して,BS_OWNERDRAW をスタイルに追加
BOOL CTestDialog::OnInitDialog()
{
  ColorRadio.SubclassDlgItem(IDC_COLORRADIO, this);
  ColorRadio.SetButtonStyle(
    ColorBtn.GetButtonStyle() | BS_OWNERDRAW, TRUE);

  return TRUE;
}

// あとは,CColorRadio::DrawItem を好きにインプリメントするだけ

ちょっと言い訳.
この前は,寝ぼけてたので(9時台なのに),ぢつは SDK とごっちゃになってた.
んでもって,ぢつは,OnPaint を変更しても案外うまくいかないみたい.
この様子だと SDK でもオーナードローじゃないとだめかも.うにゅぅ.


返信引用
たけ
 たけ
(@たけ)
ゲスト
結合: 25年前
投稿: 116
Topic starter  

こんにちは。

おきゅとぱすさん、ありがとうございます。
ばっちり出来上がりました。
感謝、感謝です。
またよろしくお願いします。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました