首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

Win32画多边形为啥不行?解决办法

2012-05-14 
Win32画多边形为啥不行?C/C++ codevoid DrawS(HDC hDC,HBRUSH nBrush2){POINT polygon{0}HRGN gonCreat

Win32画多边形为啥不行?

C/C++ code
void DrawS(HDC hDC,HBRUSH nBrush2){    POINT polygon={0};    HRGN gon=CreatePolygonRgn{&polugon,5,WINDING};    fillRgn(hDC,gon,nBrush2);}void OnPaint(HWND hWnd){    PAINTSTRUCT obj={0};    HDC hDC=BeginPaint(hWnd,&obj);    HPEN nPen=CreatePen(PS_DASH,6,RGB(192,168,026));    HGDIOBJ nOldPen = SelectObject(hDC,nPen);    HBRUSH nBrush2 = CreateHatchBrush(HS_HORIZONTAL,RGB(87,11,11));    HGDIOBJ nOldBrush2 = SelectObject(hDC, nBrush2);    DrawS(hDC,nBrush2);    SelectObject(hDC,nOldBrush2);    DeleteObject(nBrush2);    SelectObject(hDC,nOldPen);    DeleteObject(nPen);    EndPaint(hWnd,&obj);}


[解决办法]
void DrawS(HDC hDC, HBRUSH hBrush)
{
POINT pt[4]= {{5, 5}, {50, 5}, {50, 100}, {5, 100}};
HRGN hRgn= CreatePolygonRgn(pt, 4, WINDING);

FillRgn(hDC, hRgn, hBrush);
DeleteObject(hRgn);
}

void OnPaint(HWND hWnd)
{
HDC hDC = GetDC(hWnd);//BeginPaint用于处理WM_PAINT
HBRUSH hBrush= CreateHatchBrush(HS_HORIZONTAL, RGB(87, 11, 11));

DrawS(hDC, hBrush);
DeleteObject(hBrush);
ReleaseDC(hWnd, hDC);
}

热点排行