画刷使用

LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
HDC hdc; //设备环境句柄
PAINTSTRUCT ps; //存储绘图环境的相关信息

//定义两个画刷,定义为静态变量
static HBRUSH hSolidBrush;
static HBRUSH hHatchBrush;

switch (message)
{
case WM_CREATE:
//创建红色实心画刷,保存句柄到 hSolidBrush 变量
hSolidBrush = CreateSolidBrush(RGB(255, 0, 0));
//创建绿色交叉阴影画刷,保存句柄到 hHatchBrush 变量
hHatchBrush = CreateHatchBrush(HS_DIAGCROSS, RGB(0, 255, 0));
break;

case WM_PAINT: //窗口绘制消息
hdc = BeginPaint(hwnd, &ps); //开始绘图并返回环境句柄
//选入红色实心画刷到设备环境
SelectObject(hdc, hSolidBrush);
Rectangle(hdc, 0, 0, 200, 100);
//选入绿色交叉画刷到设备环境
SelectObject(hdc, hHatchBrush);
Ellipse(hdc, 0, 100, 200, 200);
EndPaint(hwnd, &ps); //结束绘图并释放环境句柄
break;

case WM_DESTROY: //窗口销毁消息
//处理 WM_DESTROY 消息时删除之前创建的一切GDI对象
DeleteObject(hSolidBrush);
DeleteObject(hHatchBrush);
PostQuitMessage(0);
break;

default:
return DefWindowProc(hwnd, message, wParam, lParam);
}
return 0;
}
--------------------- 

猜你喜欢

转载自www.cnblogs.com/ly570/p/11304698.html