自绘对话框标题栏

 

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(); //删除设备	
}


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值