ダイヤログに作成したスタティックテキストの
色を赤、緑、デフォルト色(灰色)に変化させたいのですが、
ソフトをどの様に作成すればわかりません。
どなたか、ソースレベルで教えてください。
よろしくお願いします。
例:スタティックテキストIDC_TEXT1を色付けで表示
1. クラスメンバーHBRUSH型変数 m_Red を定義する。
2. 初期処理で m_Red = CreateSolidBrush(RGB(255,0,0));で作成
3. WM_CTLCOLORイベント処理を追加
HBRUSH CStockDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
int ID = pWnd->GetDlgCtrlID();
switch(ID) {
case IDC_TEXT1:
pDC->SetTextColor(RGB(0,0,255)); // 文字色は青
pDC->SetBkColor(RGB(0,255,0)); // 文字背景色は緑
pDC->SetBkMode(TRANSPARENT);
return m_Red; // 表示領域全体の背景色は赤
}
return hbr;
}
お試してください、文字色変るだけ場合は m_Red の作成する必要はありません、
pDC->SetTextColor(RGB(0,0,255));の後ろでbreakでよい。
尚、イベント処理内直接return CreateSolidBrush(RGB(255,0,0))のようにしないほうがいいです、Brushの開放処理ない為、リソース不足になる可能性あるので注意して下さい。
有難う御座います。
クラスを使用したことがないので、
1. クラスメンバーHBRUSH型変数 m_Red を定義する。
Q:HBRUSH m_Red;だと構文エラー
A:
3. WM_CTLCOLORイベント処理を追加
Q:そのイベントが発生したらなにをすればよいおですか、
有難う御座います。
クラスを使用したことがないので、
1. クラスメンバーHBRUSH型変数 m_Red を定義する。
Q:HBRUSH m_Red;だと構文エラー
A:
3. WM_CTLCOLORイベント処理を追加
Q:そのイベントが発生したらなにをすればよいおですか、
1. クラスメンバーHBRUSH型変数 m_Red を定義する。
Q:HBRUSH m_Red;だと構文エラー
A:
3. WM_CTLCOLORイベント処理を追加
Q:そのイベントが発生したらなにをすればよいおですか、
1. クラスメンバーHBRUSH型変数 m_Red を定義する。
Q:HBRUSH m_Red;だと構文エラー
A:同じ名前の変数を定義しているかどうか、まだは前の行で問題あるかをチェックして。
3. WM_CTLCOLORイベント処理を追加
Q:そのイベントが発生したらなにをすればよいおですか、
A:例のOnCtlColor関数を実行すればよいですよ。