自動描画ダイアログのタイトルバー

1254 ワード

void CDD2Dlg::OnNcPaint() 
{
	//          
	CDialog::OnNcPaint();

	//  TitleBar     
	CRect titleRect;
	GetWindowRect(&titleRect);
	DWORD DialogBaseUnits = GetDialogBaseUnits();
	WORD DialogBaseUnits_X = LOWORD(DialogBaseUnits)/4;
	WORD DialogBaseUnits_Y = HIWORD(DialogBaseUnits)/8;
	titleRect.top += GetSystemMetrics(SM_CYBORDER) * DialogBaseUnits_Y;
	titleRect.left += GetSystemMetrics(SM_CXBORDER) * DialogBaseUnits_X;
	titleRect.right -= GetSystemMetrics(SM_CXBORDER) * DialogBaseUnits_X;
	titleRect.bottom = titleRect.top + GetSystemMetrics(SM_CYCAPTION);

	//  DC  
	CDC pDC;
	pDC.CreateDC("DISPLAY", NULL, NULL,NULL);
	int saveDC = pDC.SaveDC(); //    

	//         
	CBrush brush(RGB(255,0,0));
	pDC.FillRect(&titleRect,&brush);

	//         
	pDC.SetBkMode(TRANSPARENT);
	pDC.SetTextColor(RGB(0,128,128));
	pDC.DrawText("ABCD",titleRect,DT_CENTER|DT_VCENTER|DT_SINGLELINE);

	pDC.RestoreDC(saveDC); //    
	pDC.DeleteDC(); //    	
}