Rectangle怎么实现无色边框

Ginie 2011-05-23 11:19:47
我用力CBrush填充一个区域,但是那个区域是会跟着我提供的参数进行改变的,但是现在是它有黑色的边框,代码如下,麻烦各位看下。


///////////////////////////////////////////////////////////////////////////
/***********************FINGER2作图**************************/
CDC* pDC3;
CDC* pDC4;
CBrush newbrush1(RGB(255,0,0));
CWnd* pwnd3 = GetDlgItem(IDC_FINGER2);
pDC3 = pwnd3->GetDC();
pDC4 = pwnd3->GetDC();
CBrush* oldBrush = pDC4->SelectObject(&newbrush1);
CPen pen3(PS_SOLID,4,RGB(0,0,0));
// CPen pen4(PS_SOLID,4,RGB(255,0,0)); //创建黑色画笔
CPen *pOldPen3 = pDC3->SelectObject(&pen3);
// CPen *pOldPen4 = pDC4->SelectObject(&pen4);

CRect finger2rect;
pwnd3->GetClientRect(&finger2rect);

pDC3->MoveTo(0,(Lhand.ADCData[2]*finger_rect.Height())/3000);
pDC3->LineTo(finger2rect.Width(),(Lhand.ADCData[2]*finger_rect.Height())/3000);
Sleep(10);
pDC4->Rectangle(0,(Lhand.ADCData[2]*finger_rect.Height())/3000-4,finger2rect.Width(),(Lhand.ADCData[2]*finger_rect.Height())/3000+4);
pDC4->SelectObject(oldBrush);
// pDC4->MoveTo(0,(Lhand.ADCData[2]*finger_rect.Height())/3000);
// pDC4->LineTo(finger2rect.Width(),(Lhand.ADCData[2]*finger_rect.Height())/3000);
pDC3->SelectObject(&pOldPen3);
// pDC4->SelectObject(&pOldPen4);
pwnd3->ReleaseDC(pDC3);
// pwnd3->ReleaseDC(pDC4);
///////////////////////////////////////////////////////////////////////////

...全文
578 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
Ginie 2011-05-23
  • 打赏
  • 举报
回复
Ginie 2011-05-23
  • 打赏
  • 举报
回复
Ginie 2011-05-23
  • 打赏
  • 举报
回复
我改成 CPen* pOldPen3 = (CPen*)(pDC3->SelectStockObject(NULL_PEN));
结果如下图
海盗医生 2011-05-23
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 visualeleven 的回复:]
CPen* pOldPen = (CPen*)(pDC->SelectStockObject(NULL_PEN));
[/Quote]

完全赞同
Eleven 2011-05-23
  • 打赏
  • 举报
回复
CPen* pOldPen = (CPen*)(pDC->SelectStockObject(NULL_PEN));
Ginie 2011-05-23
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 zjut018 的回复:]
pDC3 = pwnd3->GetDC();
pDC4 = pwnd3->GetDC();
[/Quote]

??
zjut018 2011-05-23
  • 打赏
  • 举报
回复
pDC3 = pwnd3->GetDC();
pDC4 = pwnd3->GetDC();
Ginie 2011-05-23
  • 打赏
  • 举报
回复
各位帮帮忙啦,顶下
Ginie 2011-05-23
  • 打赏
  • 举报
回复
边框的右边多出来一些点,画的时候感觉边上也在画
Ginie 2011-05-23
  • 打赏
  • 举报
回复
我现在又改了下,现在效果差不多了,可是还是有点小问题,大家看下图片


代码如下

///////////////////////////////////////////////////////////////////////////
/***********************FINGER2作图**************************/
CDC* pDC3;
CDC* pDC4;
CBrush newbrush1(RGB(255,0,0));
CWnd* pwnd3 = GetDlgItem(IDC_FINGER2);
pDC3 = pwnd3->GetDC();
pDC4 = pwnd3->GetDC();
CBrush* oldBrush = pDC4->SelectObject(&newbrush1);
CPen pen3(PS_SOLID,4,RGB(0,0,0));
// CPen pen4(PS_SOLID,4,RGB(255,0,0)); //创建黑色画笔
CPen *pOldPen3 = pDC3->SelectObject(&pen3);
// CPen *pOldPen4 = pDC4->SelectObject(&pen4);
CPen* pOldPen4 = (CPen*)(pDC4->SelectStockObject(NULL_PEN));

CRect finger2rect;
pwnd3->GetClientRect(&finger2rect);

pDC3->MoveTo(0,(Lhand.ADCData[2]*finger_rect.Height())/3000);
pDC3->LineTo(finger2rect.Width(),(Lhand.ADCData[2]*finger_rect.Height())/3000);
Sleep(10);

pDC4->Rectangle(0,(Lhand.ADCData[2]*finger_rect.Height())/3000-4,finger2rect.Width(),(Lhand.ADCData[2]*finger_rect.Height())/3000+4);
pDC4->SelectObject(oldBrush);
pDC4->SelectObject(pOldPen4);
// pDC4->MoveTo(0,(Lhand.ADCData[2]*finger_rect.Height())/3000);
// pDC4->LineTo(finger2rect.Width(),(Lhand.ADCData[2]*finger_rect.Height())/3000);
pDC3->SelectObject(&pOldPen3);
// pDC4->SelectObject(&pOldPen4);
pwnd3->ReleaseDC(pDC3);
pwnd3->ReleaseDC(pDC4);
///////////////////////////////////////////////////////////////////////////

dfasri 2011-05-23
  • 打赏
  • 举报
回复
pDC4->Rectangle(0,(Lhand.ADCData[2]*finger_rect.Height())/3000-4,finger2rect.Width(),(Lhand.ADCDat

把pDC4的Pen去掉就会直接画矩形, 不会带边线了吧

15,980

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧