一、接受绘图消息
case WM_PAINT: 绘图(hWnd); break; 二、实现绘图方法 void 绘图(HWND hWnd) { PAINTSTRUCT p = {};//创建画笔 HDC hdc = BeginPaint(hWnd, &p);//画笔句柄 画个点(hdc); EndPaint(hWnd, &p); }
三、实现画点、线、面
void 画个点(HDC hdc) { SetPixel(hdc, 100, 100, RGB(255, 255, 255));//相对于客户区.画一个点 for (int i=0;i<100;i++) { SetPixel(hdc, 200+i, 200+i, RGB(0, 0, 255));//通过点画条斜线 } for (int i = 0; i < 100; i++) { for (int j=0;j<100;j++) { SetPixel(hdc, 300 + i, 300 + j, RGB(255, 0, 0));//通过点画方块 } } }
四、运行结果
五、直接画线
void 画线(HDC hdc) { MoveToEx(hdc, 100, 100, NULL);//开始点的位置 LineTo(hdc, 200, 200);//画到的位置,下个点从这里开始 LineTo(hdc, 100, 200); } 六、画矩形 void 画矩形(HDC hdc) { Rectangle(hdc, 100, 100, 300, 300);//300宽,300高 RoundRect(hdc,100, 100, 300, 300, 200, 200);//200是弧度,圆角矩形,都是200,所以是个圆 }
七、画圆
void 画圆(HDC hdc) { Ellipse(hdc, 100, 100, 400, 300); }
八、画弧,四分之一圆
void 画弧(HDC hdc) { Arc (hdc, 100, 100, 400, 400,150,50,50,150);//150,50 开始点,50,,150结束点,逆时针画 }
九、画扇形
void 画扇形(HDC hdc) { Pie(hdc, 100, 100, 400, 400, 300, 50, 50, 300); }