青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Jiang's C++ Space

創(chuàng)作,也是一種學(xué)習(xí)的過(guò)程。

   :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::

【20060307發(fā)表于blog.csdn.net,20090403重編輯】

1、GDI名字的意義
GDI Graphic Device Interface,我說(shuō)不清和GUI有什么區(qū)別??赡芤环N針對(duì)設(shè)備,一種針對(duì)用戶而言吧,反正以后都說(shuō)GDI,也就是Windows的圖形編程。

2、設(shè)備描述上下文HDC
Handle Device Context
這個(gè)是關(guān)鍵的關(guān)鍵,可以理解成畫(huà)圖的環(huán)境,何謂環(huán)境?畫(huà)板,紙,筆,尺寸,字體,顏色,區(qū)域等。反正包括你能想到的和未能想到的了。要畫(huà)出不同的圖形,很大程度上是對(duì)HDC的修改。

3、HDC的創(chuàng)建方式
WM_PAINT消息來(lái)的時(shí)候,用:

hdc = BeginPaint(hwnd, &ps);
//...
EndPaint(hwnd, &ps);

結(jié)束后ps區(qū)域自動(dòng)變有效。還有:

hdc = GetDC(hwnd);
//...
ReleaseDC(hwnd, hdc);

這一對(duì)需要調(diào)用ValidateRect()函數(shù)來(lái)使得區(qū)域有效。

還有別的辦法,但不常用,這里略過(guò)。不過(guò)有一個(gè)還是值得一說(shuō),那就是取得Window HDC的辦法,用它可以在Windows非客戶區(qū)畫(huà)圖:

hdcWindow = GetWindowDC(hwnd);
//...
ReleaseDC(hwnd, hdcWindow);


4、獲取HDC信息
GetDeviceCaps()
其中比較重要的指標(biāo)是:
HORZRES - horizontal resolution
VERTRES - vertical resolution
BITSPIXEL - 色深

5、保存HDC與還原HDC

SaveDC(hdc);
RestoreDC(hdc, 
-1);


6、畫(huà)圖畫(huà)圖!

//[偽碼]

// ----- 點(diǎn) -----
//畫(huà)點(diǎn)
SetPixel(hdc, x, y, crColor);
//取點(diǎn)顏色
crColor = GetPixel(hdc, x, y);

// ----- 直線 -----
//最后一參數(shù)為NULL表示不返回最后點(diǎn)
MoveToEx(hdc, x, y, lpPrevPoint);
//畫(huà)線
LineTo(hdc, x, y);
//畫(huà)多線,不移動(dòng)當(dāng)前點(diǎn)
Polyline(hdc, lpPoint, cPointNum);
//畫(huà)多線,移動(dòng)當(dāng)前點(diǎn)
PolylineTo(hdc, lpPoint, cPointNum);
//畫(huà)多組多線
PolyPolyline(hdc, lppt, lpNum, cCount);

//----- 曲線 -----
//畫(huà)橢圓線
Arc();
//畫(huà)比澤爾曲線,不移動(dòng)但前點(diǎn)
PolyBezier();
//畫(huà)比澤爾曲線,移動(dòng)當(dāng)前點(diǎn)
PolyBezierTo();

//----- 區(qū)域 -----
//畫(huà)矩形
Rectangle();
//畫(huà)橢圓
Ellipse();
//畫(huà)帶圓角的矩形
RoundRect();
//畫(huà)扇
Pie();
//畫(huà)弓
Chord();


7、畫(huà)筆HPEN(改變線條)
方法1:
HPEN hPen = GetStockObject(ARGUMENTS);
ARGUMENTS為:BLACK_PEN 黑筆WHITE_PEN 白筆

HPEN hPen = SelectObject(hdc, GetStockObject(WHITE_PEN));
DelectObject(hPen);

方法2:
HPEN hPen = CreatePen(iPenStyle, iWidth, crColor);
iPenStyle為:PS_SOLID實(shí)線PS_DASH虛線PS_DOT點(diǎn)線PS_DASHDOT虛點(diǎn)線PS_DASHDOTDOT虛雙點(diǎn)線PS_NULL空線PS_INSIDEFRAME??

DeleteObject(SelectObject(hdc, GetStockObject(BLACK_PEN)));

獲取畫(huà)筆信息:

GetObject(hPen, sizeof(LOGPEN), (LPVOID)&logpen);

選出HDC中的畫(huà)筆:

hPen = GetCurrentObject(hdc, OBJ_PEN);


8、背景模式
改變背景模式,也就是制定虛線間間隙的填充問(wèn)題了:

SetBkColor(hdc, crColor);
SetBkMode(hdc, TRANSPARENT);
SetBkMode(hdc, OPAQUE);

有Set嘛,相應(yīng)地有Get了,這里略過(guò)。

9、疊加模式

SetROP2(hdc, iDrawMode);
iDrawMode 
= GetROP2(hdc);


10、畫(huà)刷HBRUSH(改變填充)
畫(huà)刷能指明區(qū)域填充模式。
方法1:

HBRUSH hBrush = GetStockObject(GRAY_BRUSH);
SelectObject(hdc, hBrush);

方法2:

HBRUSH hBrush = CreateSolidBrush(crColor);
HBRUSH hBrush 
= CreateHatchBrush(iHatchStyle, crColor);


11、多邊形填充模式及畫(huà)多邊形

SetPolyFillMode(hdc, iMode); //iMode:ALTERNAME WINDING
Polygon();

12、區(qū)域HRGN(繪畫(huà)范圍)

HRGN hRgn = CreateRectRgn(x1, y1, x2, y2);
HRGN hRgn 
= CreateRectRgnIndirect(&rect);
HRGN hRgn 
= CreateEllipticRgn(x1, y1, x2, y2);
HRGN hRgn 
= CreateEllipticRgnIndirect(&rect);

區(qū)域合并

CombineRgn(hDestRgn, hSrcRgn1, hSrcRgn2, iCombine); //iCombine: RGN_AND, RGN_OR, RGN_XOR, RGN_DIFF, RGN_COPY

注意:hDestRgn, hSrcRgn1, hSrcRgn2都必須有效。

FillRgn(); //填充區(qū)域。
FrameRgn(); //給區(qū)域畫(huà)邊。
InvertRgn(); //反轉(zhuǎn)區(qū)域。
HRGN hRgnPrev = SelectObject(hdc, hRgn); //將區(qū)域放置入HDC。

使區(qū)域無(wú)效/有效:

InvalidateRgn(hRgn);
ValidateRgn(hRgn);
posted on 2009-04-03 19:02 Jiang Guogang 閱讀(1629) 評(píng)論(0)  編輯 收藏 引用 所屬分類: Windows Programming
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美a级一区二区| 午夜欧美电影在线观看| 另类天堂视频在线观看| 久久精品国产91精品亚洲| 国产在线欧美日韩| 美腿丝袜亚洲色图| 欧美激情一区二区三区四区| 欧美激情网站在线观看| 久久人人爽人人| 亚洲精品久久久久久久久久久 | 欧美视频精品一区| 午夜欧美大尺度福利影院在线看| 欧美一区二区三区四区在线 | 在线亚洲高清视频| 亚洲综合精品| 影院欧美亚洲| 99av国产精品欲麻豆| 国产日韩欧美自拍| 欧美激情偷拍| 国产欧美日韩亚洲| 亚洲大胆视频| 欧美视频免费在线观看| 久久久亚洲一区| 欧美日韩在线不卡一区| 久久久人成影片一区二区三区| 欧美成人精品在线视频| 久久aⅴ国产欧美74aaa| 欧美日韩18| 久久久久天天天天| 欧美日韩亚洲不卡| 免播放器亚洲一区| 国产精品嫩草99a| 另类激情亚洲| 国产日韩欧美高清免费| 亚洲蜜桃精久久久久久久| 国产综合色产| 亚洲在线观看免费| 一区二区三区四区五区视频| 久久国产高清| 性欧美video另类hd性玩具| 欧美成人自拍| 免费成人黄色片| 国产精品一级二级三级| 99av国产精品欲麻豆| 亚洲破处大片| 久久久国产精品一区二区中文 | 99国产精品99久久久久久| 久久国产日韩欧美| 欧美在线免费看| 欧美日韩精品免费在线观看视频| 美女图片一区二区| 国产亚洲精品高潮| 亚洲女性喷水在线观看一区| 一本色道久久99精品综合 | 久久精品123| 欧美在线免费视屏| 国产欧美日韩在线视频| 亚洲综合精品一区二区| 亚洲影视九九影院在线观看| 欧美日韩美女一区二区| 亚洲国产一区二区三区青草影视| 亚洲国产精品久久久久秋霞不卡 | 亚洲麻豆av| 99精品视频网| 99国产一区| 一区二区三区视频在线播放| 欧美日韩三级| 亚洲午夜高清视频| 午夜精品福利在线| 国产欧美一区二区精品秋霞影院 | 欧美激情中文不卡| 亚洲精品日韩欧美| 欧美日韩喷水| 亚洲一区二区三区免费视频 | 亚洲国产精品久久| 欧美精品久久一区二区| 亚洲每日在线| 欧美一区二区黄| 一区二区三区在线免费观看| 久久亚洲午夜电影| 亚洲精品在线一区二区| 午夜精品久久久久久久久| 国产精品自在线| 久久人人爽人人爽爽久久| 亚洲电影专区| 亚洲欧美日韩一区二区在线 | 欧美激情视频在线播放| 一本色道久久精品| 久久久久久久久久久一区| 在线免费观看成人网| 欧美日韩八区| 欧美一区二区三区视频免费播放| 欧美高清视频一区| 亚洲伊人一本大道中文字幕| 国产一区深夜福利| 欧美激情乱人伦| 亚洲一区二区三区四区视频| 欧美a级片网| 香蕉av福利精品导航| 亚洲国产成人午夜在线一区| 欧美日韩一区二区在线观看| 久久动漫亚洲| 99精品福利视频| 久久免费高清| 亚洲一二三级电影| 影院欧美亚洲| 国产伦精品免费视频| 免费成人av在线| 亚洲欧美在线免费| 亚洲日本激情| 模特精品在线| 久久精品理论片| 亚洲欧美日韩精品久久久久| 亚洲国产精品一区二区第四页av| 国产农村妇女精品一区二区| 欧美激情综合亚洲一二区| 久久国产主播| 亚洲一区免费在线观看| 亚洲美女av网站| 欧美国产日韩亚洲一区| 久久久www成人免费无遮挡大片| 洋洋av久久久久久久一区| 亚洲第一在线视频| 狠狠综合久久av一区二区小说| 国产精品久久久久久久久搜平片 | 欧美国产激情| 模特精品裸拍一区| 久久综合色综合88| 久久久精品国产免大香伊| 欧美亚洲网站| 亚洲欧美视频一区| 亚洲一区二区三区免费在线观看 | 亚洲一区二区三区精品在线| 91久久中文字幕| 亚洲国产精品一区二区三区| 国内成人精品视频| 国产一区日韩欧美| 好吊一区二区三区| 一区二区视频欧美| 精品二区视频| 影音先锋在线一区| 亚洲韩国精品一区| 亚洲国产精品尤物yw在线观看| 在线色欧美三级视频| 尤物九九久久国产精品的分类| 国内成人精品2018免费看| 狠狠网亚洲精品| 亚洲欧洲另类国产综合| 99re6热只有精品免费观看| 99视频精品免费观看| 一区二区三区不卡视频在线观看 | 欧美伊人久久| 久久精品视频网| 免费高清在线一区| 欧美激情1区2区| 欧美伦理91| 国产精品毛片在线看| 国内精品写真在线观看| 在线观看日韩精品| 日韩视频在线观看国产| 亚洲无毛电影| 久久久久久久综合狠狠综合| 麻豆精品传媒视频| 亚洲日韩视频| 亚洲一区二区三区色| 久久久99精品免费观看不卡| 欧美大学生性色视频| 国产精品www| 一区二区视频免费在线观看 | 影音先锋另类| 99视频精品免费观看| 久久99在线观看| 亚洲第一黄色| 亚洲字幕在线观看| 蜜桃av一区二区三区| 国产精品不卡在线| 亚洲国产精品第一区二区三区| 99精品国产福利在线观看免费| 午夜精品一区二区三区在线视 | 在线视频日韩精品| 久久久91精品国产| 国产精品久久久久高潮| 娇妻被交换粗又大又硬视频欧美| 99国产精品久久久久久久成人热| 欧美一区二区三区男人的天堂 | 欧美一级播放| 亚洲激情六月丁香| 午夜一区二区三区在线观看| 欧美精品一级| 伊人男人综合视频网| 欧美亚洲在线播放| 99国产精品久久久久久久| 久久伊人一区二区| 国产久一道中文一区| 9i看片成人免费高清| 蜜臀久久久99精品久久久久久| 亚洲欧美日韩中文播放| 欧美日韩国产限制| 亚洲精品国产精品乱码不99| 久久在线91|