void CGDIplus2Dlg::OnFill()
{
HDC hdc;
HWND hWnd=this->GetSafeHwnd();
hdc = ::GetDC(hWnd);
HBRUSH hBrush = CreateHatchBrush(HS_CROSS, RGB(0, 0, 255));
HPEN hPen = CreatePen(PS_SOLID, 3, RGB(255, 0, 0));
HBRUSH oldBrush =(HBRUSH)SelectObject(hdc, hBrush);
HPEN oldPen =(HPEN )SelectObject(hdc, hPen);
Rectangle(hdc, 100, 50, 200, 80);
SelectObject(hdc, oldBrush);
SelectObject(hdc, oldPen);
::DeleteObject(hBrush);
::DeleteObject(hPen);
::ReleaseDC(hWnd,hdc);
}
void CGDIplus2Dlg::OnFillIi()
{
/*
请注意,GDI+ 中的 FillRectangle 和 DrawRectangle 方法接收指定矩形左边缘、上边缘、宽和高的参数。
这与 GDI 的 Rectangle 函数不同,
Rectangle 函数接收指定矩形左边缘、右边缘、上边缘和下边缘的参数。
另请注意,GDI+ 中 Color 类的 FromArgb 方法有四个参数。
后三个参数是常见的红色、绿色和蓝色值。
第一个参数是 alpha 值,
它指定所绘制颜色与背景颜色的混合程度。
*/
HatchBrush* myHatchBrush = new HatchBrush(
HatchStyleCross,
Color(255, 255,0 , 0),
Color(255, 0, 0, 255));//红线蓝底
Pen* myPen = new Pen(Color(255, 255, 0, 0), 3);//红笔
Graphics* myGraphics;
CClientDC dc(this);
//HWND hWnd=this->m_hWnd;
//hdc = ::BeginPaint(hWnd, &ps);
//hdc = ::GetDC(hWnd);
HDC hdc=dc.m_hDC;
myGraphics = new Graphics(hdc);
myGraphics->FillRectangle( myHatchBrush, 100, 50, 100, 30);
myGraphics->DrawRectangle( myPen, 100, 150, 100, 30);
delete myHatchBrush;
delete myPen;
delete myGraphics;
}