+ -
当前位置:首页 → 问答吧 → 非客户绘图失败,大神帮忙啊

非客户绘图失败,大神帮忙啊

时间:2011-12-03

来源:互联网

void CTestDlg::OnNcPaint()
{
// TODO: 在此处添加消息处理程序代码
// 不为绘图消息调用 CDialogEx::OnNcPaint()
CDialogEx::OnNcPaint();
CDC* pDC=GetWindowDC(); 
CRect rcTitle,rcWin; 
GetWindowRect(rcWin); 
rcTitle.left=70; 
rcTitle.top=1; 
rcTitle.right=rcWin.Width()-2; 
rcTitle.bottom=GetSystemMetrics(SM_CYSCREEN); 
HBRUSH hBrush=::CreateSolidBrush(RGB(255,0,0)); //创建画刷
pDC-> SelectObject(); //这一行怎么修改,需要参数类型是CBrush
pDC-> FillRect(rcTitle,&brbak); 
  ::DeleteObject(hBrush);
ReleaseDC(pDC);

}


第二个问题:函数末尾 DeleteObject 对不对?????


第三个问题: 当对话框最小化后, 结果又恢复原来的 颜色了。。。。。。。。。。。。。。。。。。。


作者: caddor   发布时间: 2011-12-03

HBRUSH hBrush=::CreateSolidBrush(RGB(255,0,0)); //创建画刷
 pDC-> SelectObject(); //这一行怎么修改,需要参数类型是CBrush
 pDC-> FillRect(rcTitle,&brbak); 
-->
CBrush hBrush;
hBrush.CreateSolidBrush(RGB(255, 0, 0));
ASSERT(hBrush.GetSafeHandle());
CBrush* pOldBr = (CBrush*)pDC->SelectObject(&bBrush);

pDC->SelectObject(pOldBr);
...

作者: VisualEleven   发布时间: 2011-12-03

请问 DeleteObject 对不对??????






引用 1 楼 visualeleven 的回复:

HBRUSH hBrush=::CreateSolidBrush(RGB(255,0,0)); //创建画刷
pDC-> SelectObject(); //这一行怎么修改,需要参数类型是CBrush
pDC-> FillRect(rcTitle,&brbak);
-->
CBrush hBrush;
hBrush.CreateSolidBrush(RGB(255, 0,……

作者: caddor   发布时间: 2011-12-03


当对话框最小化后, 结果又恢复原来的 颜色了。。。。。。。。。。。。。。。。。。。

这怎么办??????






引用 1 楼 visualeleven 的回复:

HBRUSH hBrush=::CreateSolidBrush(RGB(255,0,0)); //创建画刷
pDC-> SelectObject(); //这一行怎么修改,需要参数类型是CBrush
pDC-> FillRect(rcTitle,&brbak);
-->
CBrush hBrush;
hBrush.CreateSolidBrush(RGB(255, 0,……

作者: caddor   发布时间: 2011-12-03