win32改变曲线颜色
本人用VC++6.0在win32上画了一个正弦,代码如下:
case WM_PAINT:
{
hdc = BeginPaint(hWnd, &ps);
// TODO: 在此添加任意绘图代码..
RECT rt;
int cxClient=0;
int cyClient=0;
hdc = ::GetDC(hWnd);
HPEN pen = CreatePen(PS_SOLID,1,RGB(255,0,0));//设为红色
POINT pt[500];
::GetClientRect(hWnd, &rt);
cxClient = (rt.right - rt.left)/5;
cyClient = (rt.bottom - rt.top)/5;
::MoveToEx(hdc, 0, cyClient/2, NULL);
::LineTo(hdc, cxClient, cyClient/2);
// 找出500个点的坐标
for(int i=0; i<500; i++)
{
pt[i].x = cxClient*i/500;
pt[i].y = (int)((cyClient/2)*(1 - sin(2*PI*i/500)));
}
SelectObject(hdc,pen);//先选择颜色,后画图!
::Polyline(hdc, pt, 500);
DeleteObject(pen);
EndPaint(hWnd, &ps);
break;
}
[解决办法]
HPEN pen和HPEN old 放到switch语句前面定义
SelectObject(old)改成SelectObject(hdc,old)