遍匈 / Windows園殻 / 5、夕侘児粥 /

膨、Windows夕侘侃尖!紙崙野秘曝囃(Polygon痕方才謹円侘野秘圭

厘厮将網胎狛阻念励倖曝囃野秘痕方?Polygon頁及鎗倖鮫揮円順崇議野秘夕侘議痕方?乎痕方議柵出嚥Polyline痕方屢貌?

Polygon (hdc, apt, iCount) ;
 

凪嶄?apt歌方頁POINT潤更議匯倖方怏?iCount頁泣議方朕。泌惚乎方怏嶄議恷朔匯倖泣嚥及匯倖泣音揖?夸Windows繍氏壅紗匯訳??繍恷朔匯倖泣嚥及匯倖泣銭軟栖?壓Polyline痕方嶄?Windows音氏宸担恂?。PolyPolygon痕方泌和侭幣?

PolyPolygon (hdc, apt, aiCounts, iPolyCount) ;
 

乎痕方紙崙謹倖謹円侘。恷朔匯倖歌方公竃阻侭鮫議謹円侘議倖方。斤噐耽倖謹円侘?aiCounts方怏公竃阻謹円侘議極泣方。apt方怏醤嗤畠何謹円侘議侭嗤泣。茅勧指峙參翌?PolyPolygon壓孔嬬貧嚥和中議旗鷹屢揖?

for (i = 0, iAccum = 0 ; i < iPolyCount ; i++)
 
{
 
 Polygon (hdc, apt + iAccum, aiCounts[i]) ;
 
 iAccum += aiCounts[i] ;
 
}
 

斤噐Polygon才PolyPolygon痕方?Windows聞喘協吶壓譜姥坪否嶄議朕念鮫泡栖野秘宸倖揮円順議曝囃。崛噐野秘坪何議圭塀?夸函畳噐謹円侘野秘圭塀?艇辛參喘SetPolyFillMode痕方栖譜協?

SetPolyFillMode (hdc, iMode) ;
 

坪協秤趨和?謹円侘野秘圭塀頁ALTERNATE?徽頁艇辛參繍万譜協葎WINDING。曾嶽圭塀議曝艶歌需夕5-15侭幣。


遍枠?ALTERNATE才WINDING圭塀岻寂議曝艶載否叟賀状。斤噐ALTERNATE圭塀?艇辛參譜?貫匯倖涙博寄議撃液曝囃坪何議泣鮫??峪嗤邪?議?刊狛阻謎方訳円順?扮?嘉野秘撃液曝囃。宸祥頁野秘阻佛議叔遇嶄伉短瓜野秘議圻咀。

励叔佛議箭徨聞誼WINDING圭塀心軟栖曳糞縞貧厚酒汽匯乂。壓紙崙汽倖議謹円侘扮?寄謹方秤趨和?WINDING圭塀氏野秘侭嗤撃液議曝囃。徽頁匆嗤箭翌。

壓WINDING圭塀和勣鳩協匯倖撃液曝囃頁倦瓜野秘?艇挽症辛參譜?貫椎倖涙博寄議曝囃鮫?。泌惚邪?議?刊狛阻謎方訳円順??曝囃祥瓜野秘?宸才ALTERNATE圭塀匯劔。泌惚邪?議?刊狛阻甜方訳円順??夸曝囃辛嬬瓜野秘匆辛嬬音瓜野秘。泌惚匯倖圭??屢斤噐邪???議円順?方嚥総匯倖圭?議円順?方音屢吉?祥野秘曝囃。

箭泌?深打夕5-16嶄議麗悶。壓?議収遊峺竃阻鮫?議圭?。曾嶽圭塀脅氏野秘眉倖撃液議L侘曝囃?催鷹貫1欺3。催鷹葎4才5議曾倖弌坪何曝囃?壓ALTERNATE圭塀和音氏瓜野秘。徽頁?壓WINDING圭塀和?催鷹葎5議曝囃氏瓜野秘?咀葎貫曝囃坪駅倬刊狛曾訳屢揖圭?議?嘉嬬欺器夕侘翌何。催鷹葎4議曝囃音氏瓜野秘?咀葎駅倬刊狛曾訳圭?屢郡議?。

泌惚艇山夘Windows短嗤宸担艦苧?椎担殻會5-5 ALTWIND氏婢幣公艇心。


殻會5-5 ALTWIND
 
ALTWIND.C
 
/*-------------------------------------------------------------------
 
 ALTWIND.C -- Alternate and Winding Fill Modes
 
 (c) Charles Petzold, 1998
 
-------------------------------------------------------------------*/
 
#include <windows.h>
 
LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;
 
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
 
 PSTR szCmdLine, int iCmdShow)
 
{
 
 static TCHAR szAppName[] = TEXT ("AltWind") ;
 
 HWND hwnd ;
 
 MSG msg ;
 
 WNDCLASS wndclass ;
 
 wndclass.style = CS_HREDRAW | CS_VREDRAW ;
 
 wndclass.lpfnWndProc= WndProc ;
 
 wndclass.cbClsExtra = 0 ;
 
 wndclass.cbWndExtra = 0 ;
 
 wndclass.hInstance = hInstance ;
 
 wndclass.hIcon = LoadIcon (NULL, IDI_APPLICATION) ;
 
 wndclass.hCursor = LoadCursor (NULL, IDC_ARROW) ;
 
 wndclass.hbrBackground= (HBRUSH) GetStockObject (WHITE_BRUSH) ;
 
 wndclass.lpszMenuName= NULL ;
 
 wndclass.lpszClassName= szAppName ;
 
 
 
 if (!RegisterClass (&wndclass))
 
 {
 
 MessageBox ( NULL, TEXT ("Program requires Windows NT!"),
 
 szAppName, MB_ICONERROR) ;
 
 return 0 ;
 
 }
 
 
 
 hwnd = CreateWindow (szAppName, TEXT ("Alternate and Winding Fill Modes"),
 
 WS_OVERLAPPEDWINDOW,
 
 CW_USEDEFAULT, CW_USEDEFAULT,
 
 CW_USEDEFAULT, CW_USEDEFAULT,
 
 NULL, NULL, hInstance, NULL) ;
 
 
 
 ShowWindow (hwnd, iCmdShow) ;
 
 UpdateWindow (hwnd) ;
 
 
 
 while (GetMessage (&msg, NULL, 0, 0))
 
 {
 
 TranslateMessage (&msg) ;
 
 DispatchMessage (&msg) ;
 
 }
 
 return msg.wParam ;
 
}
 
LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
 
{
 
 static POINT aptFigure [10] = {10,70, 50,70, 50,10, 90,10, 90,50,
 
 30,50, 30,90, 70,90, 70,30, 10,30 };
 
 static int cxClient, cyClient ;
 
 HDC hdc ;
 
 int i ;
 
 PAINTSTRUCT ps ;
 
 POINT apt[10] ;
 
 
 
 switch (message)
 
 {
 
 case WM_SIZE:
 
 cxClient = LOWORD (lParam) ;
 
 cyClient = HIWORD (lParam) ;
 
 return 0 ;
 
 case WM_PAINT:
 
 hdc = BeginPaint (hwnd, &ps) ;
 
 SelectObject (hdc, GetStockObject (GRAY_BRUSH)) ;
 
 for (i = 0 ; i < 10 ; i++)
 
 {
 
 apt[i].x = cxClient * aptFigure[i].x / 200 ;
 
 apt[i].y = cyClient * aptFigure[i].y / 100 ;
 
 }
 
 SetPolyFillMode (hdc, ALTERNATE) ;
 
 Polygon (hdc, apt, 10) ;
 
 for (i = 0 ; i < 10 ; i++)
 
 {
 
 apt[i].x += cxClient / 2 ;
 
 }
 
 SetPolyFillMode (hdc, WINDING) ;
 
 Polygon (hdc, apt, 10) ;
 
 
 
 EndPaint (hwnd, &ps) ;
 
 return 0 ;
 
 
 
 case WM_DESTROY:
 
 PostQuitMessage (0) ;
 
 return 0 ;
 
 }
 
 return DefWindowProc (hwnd, message, wParam, lParam) ;
 
}
 

夕侘議恫炎?皿蛍葎100×100倖汽了?刈贋壓aptFigure方怏嶄。宸乂恫炎頁卆象?塋焦瘕魑朕躑蛤邑澡隼侗峙帖3茂鯱塋祥斜料輯裡r惨諒荒?ALTERNATE野秘圭塀?総匯肝聞喘WINDING圭塀。潤惚需夕5-17。

AltStyle によって変換されたページ (->オリジナル) /