『ながっちゃん』のページ

気まぐれ兄ちゃんの独り言

#3[CPP]ダイアログ上の文字の色を変更

ダイアログボックス上の文字の色を任意の色に変更する方法です。

解説

 ダイアログボックス上にあるスタティックコントロールなどのコントロールの色を変更するには、メッセージハンドラOnCtlColor( )で色を設定します。
 サンプルは、Visual StudioでWin32アプリケーションを作成した時に自動的に生成されるバージョン情報表示のダイアログボックス(クラス CAboutDlg)上に2つのスタティックコントロールIDC_STATIC1とIDC_STATIC2を配置し、この2つのスタティックコントロールを青色にしています。

サンプル

HBRUSH CAboutDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
{
	HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
	
	// TODO: この位置で DC のアトリビュートを変更してください
	// 文字を青色にする
	switch ( pWnd->GetDlgCtrlID() )
	{
	case IDC_STATIC1:
	case IDC_STATIC2:
		pDC->SetTextColor( RGB(0,0,255) );
	}
	
	// TODO: デフォルトのブラシが望みのものでない場合には、違うブラシを返してください
	return hbr;
}