如何在同一位图上画两条颜色不同的线???(在线等) - C++ Builder / Windows SDK/API
hMemDC=CreateCompatibleDC(NULL); //创建虚拟DC
// hBmp=CreateCompatibleBitmap(hdc,600,250);// 创建bitmap
// SelectObject(hMemDC,hBmp); // 选中 创建的DC
// SelectObject(hMemDC,PenObject);//
Polyline(hMemDC,pot,799); //画红色线
SelectObject(hMemDC,PenObject2);//
Polyline(hMemDC,pot,799); //画蓝色线
FillRect(hMemDC,&kk,BrushObject); // 刷新位图
BitBlt(hdc,16,8,600,250,hMemDC,0,0,SRCCOPY); //复制
这样是不行的 不知道为什么 每次都画的是两条蓝色线 我该怎么实现画两条不同颜色的线呢??
[解决办法]
楼主这么喜欢玩API啊,有前途的哦。
直接Image1-> Picture-> Bitmap-> Canvas-> Brush-> Color = clBlue;
Image1-> Picture-> Bitmap-> Canvas-> LineTo(100,100);
Image1-> Picture-> Bitmap-> Canvas-> Brush-> Color = clRed;
Image1-> Picture-> Bitmap-> Canvas-> LineTo(200,200);
不行吗?
[解决办法]
你确定是2条?如果数据一样应该是覆盖掉了,如果你要画出真正的2条可以考虑错开一个象素
或者先画的考虑线条大小为2,画第二条是为1,这样就覆盖到部分吧,应该有效果的
[解决办法]
HPEN pen;
HGDIOBJ oldpen;
HDC dc=::GetDC(this-> m_hWnd);
POINT pt1[3]={{10,10},{10,30},{30,30}};
POINT pt2[3]={{40,40},{40,80},{80,80}};
pen=::CreatePen(PS_SOLID,1,RGB(255,0,0));
oldpen=::SelectObject(dc,pen);
::Polyline(dc,pt1,3);
::SelectObject(dc,oldpen);
::DeleteObject(pen);
pen=::CreatePen(PS_SOLID,1,RGB(0,0,255));
oldpen=::SelectObject(dc,pen);
::Polyline(dc,pt2,3);
::SelectObject(dc,oldpen);
::DeleteObject(pen);
::ReleaseDC(this-> m_hWnd,dc);
::DeleteObject(pen);
pen=::CreatePen(PS_SOLID,1,RGB(0,0,255));
oldpen=::SelectObject(dc,pen);
::Polyline(dc,pt2,3);
::SelectObject(dc,oldpen);
::DeleteObject(pen);
::ReleaseDC(this-> m_hWnd,dc);
没问题啊。
多数你是的POINT数组里出的问题了。