亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? demo8_1.c

?? WINDOWS圖形編程隨書光盤
?? C
字號:
  1 /****************************************************************/
  2 /*         Demo8_1   ---  Print Test                            */
  3 /****************************************************************/
  4 
  5 #include <windows.h>
  6 #include "demo8_1.h"
  7 
  8 
  9 int  PASCAL  WinMain(HANDLE, HANDLE, LPSTR, int);
 10 long FAR PASCAL MainWndProc(HWND, unsigned, WORD, LONG);
 11 
 12 void DrawGraph(HDC, BOOL);
 13 void DrawPencil(HDC);
 14 void DrawLine(HDC, BOOL);
 15 
 16 void PrintGraph(HWND);
 17 
 18 
 19 int   ToolID = IDM_PENCIL;
 20 POINT OrgPoint;
 21 POINT PrePoint;
 22 POINT CurPoint;
 23 
 24 int CX, CY;
 25 
 26 /****************************************************************/
 27 /*                      WinMain()                               */
 28 /****************************************************************/
 29 
 30 int PASCAL WinMain(HANDLE hInstance, HANDLE hPrevInstance,
 31                    LPSTR lpszCmdLine, int nCmdShow)
 32 {
 33    WNDCLASS wclass;
 34    MSG      msg;
 35    HWND     hWnd;
 36    char     szName[] = "Demo8_1";
 37 
 38    if (!hPrevInstance)
 39     {
 40         wclass.style         = CS_HREDRAW | CS_VREDRAW;
 41         wclass.lpfnWndProc   = MainWndProc;
 42         wclass.cbClsExtra    = 0;
 43         wclass.cbWndExtra    = 0;
 44         wclass.hInstance     = hInstance;
 45         wclass.hIcon         = LoadIcon(NULL, IDI_APPLICATION);
 46         wclass.hCursor       = LoadCursor(NULL, IDC_ARROW);
 47         wclass.hbrBackground = GetStockObject(WHITE_BRUSH);
 48         wclass.lpszMenuName  = szName;
 49         wclass.lpszClassName = szName;
 50 
 51         if (!RegisterClass (&wclass))
 52            return (FALSE);
 53     }
 54 
 55     hWnd = CreateWindow(
 56                 szName,
 57                 "Print Test" ,
 58                 WS_OVERLAPPEDWINDOW,
 59                 CW_USEDEFAULT,
 60                 CW_USEDEFAULT,
 61                 CW_USEDEFAULT,
 62                 CW_USEDEFAULT,
 63                 NULL,
 64                 NULL,
 65                 hInstance,
 66                 NULL );
 67 
 68     if (!hWnd)
 69         return (FALSE);
 70 
 71     ShowWindow(hWnd, nCmdShow);
 72     UpdateWindow(hWnd);
 73 
 74     while (GetMessage(&msg, NULL, NULL,NULL))
 75        {
 76            TranslateMessage(&msg);
 77            DispatchMessage(&msg);
 78        }
 79     return (msg.wParam);
 80 }
 81 
 82 
 83 
 84 /****************************************************************/
 85 /*                      MainWndProc()                           */
 86 /****************************************************************/
 87 
 88 long FAR PASCAL MainWndProc(HWND hWnd, unsigned message,
 89                             WORD wParam, LONG lParam)
 90 {
 91    HDC           hDC;
 92    HMENU         hMenu;
 93    static BOOL   bLBDown;
 94 
 95    switch (message)
 96     {
 97       case WM_CREATE :
 98                 hMenu = GetMenu(hWnd);
 99                 CheckMenuItem(hMenu, IDM_PENCIL,
100                               MF_CHECKED);
101                 return (0);
102 
103       case WM_COMMAND :
104                 hMenu = GetMenu(hWnd);
105                 switch (wParam)
106                   {
107                     case IDM_PENCIL :
108                     case IDM_LINE :
109 
110                          if (ToolID == wParam)
111                             return (0);
112 
113                          CheckMenuItem(hMenu, ToolID,
114                                         MF_UNCHECKED);
115                          ToolID = wParam;
116                          CheckMenuItem(hMenu, ToolID,
117                                         MF_CHECKED);
118                          break;
119 
120                     case IDM_CLEAR :
121                          InvalidateRect(hWnd, NULL, TRUE);
122                          break;
123 
124                     case IDM_PRINT :
125                          PrintGraph(hWnd);
126                          break;
127 
128                     case IDM_QUIT :
129                          DestroyWindow(hWnd);
130                          break;
131                   }
132                 return (0);
133 
134       case WM_SIZE :
135                 CX = LOWORD(lParam);
136                 CY = HIWORD(lParam);
137                 return (0);
138 
139       case WM_LBUTTONDOWN :
140                 SetCapture(hWnd);
141                 bLBDown = TRUE;
142 
143                 OrgPoint = MAKEPOINT(lParam);
144                 CurPoint = PrePoint = OrgPoint;
145 
146                 return (0);
147 
148       case WM_LBUTTONUP :
149                 bLBDown = FALSE;
150                 ReleaseCapture();
151 
152                 hDC = GetDC(hWnd);
153                 DrawGraph(hDC, TRUE);
154                 ReleaseDC(hWnd, hDC);
155 
156                 return (0);
157 
158       case WM_MOUSEMOVE :
159                 if (bLBDown)
160                   {
161                     PrePoint = CurPoint;
162                     CurPoint = MAKEPOINT(lParam);
163 
164                     hDC = GetDC(hWnd);
165                     DrawGraph(hDC, FALSE);
166                     ReleaseDC(hWnd, hDC);
167                   }
168                 return (0);
169 
170       case WM_DESTROY :
171                 PostQuitMessage(0);
172                 return (0);
173 
174       default :
175          return(DefWindowProc(hWnd, message, wParam, lParam));
176     }
177 }
178 
179 
180 
181 void DrawGraph(HDC hDC, BOOL bSure)
182 {
183    switch (ToolID)
184     {
185       case IDM_PENCIL :
186               DrawPencil(hDC);
187               break;
188 
189       case IDM_LINE :
190               DrawLine(hDC, bSure);
191               break;
192     }
193 }
194 
195 
196 
197 void DrawPencil(HDC hDC)
198 {
199    MoveTo(hDC, PrePoint.x, PrePoint.y);
200    LineTo(hDC, CurPoint.x, CurPoint.y);
201 }
202 
203 
204 
205 void DrawLine(HDC hDC, BOOL bSure)
206 {
207    int  nDrawMode;
208 
209    if (! bSure)
210      {
211        nDrawMode = SetROP2(hDC, R2_NOT);
212 
213        MoveTo(hDC, OrgPoint.x, OrgPoint.y);
214        LineTo(hDC, PrePoint.x, PrePoint.y);
215 
216        MoveTo(hDC, OrgPoint.x, OrgPoint.y);
217        LineTo(hDC, CurPoint.x, CurPoint.y);
218 
219        SetROP2(hDC, nDrawMode);
220      }
221    else
222      {
223        MoveTo(hDC, OrgPoint.x, OrgPoint.y);
224        LineTo(hDC, CurPoint.x, CurPoint.y);
225      }
226 }
227 
228 
229 
230 HDC CreateDC_Printer()
231 {
232    HDC  hPrnDC;
233    char szProfile[70];
234    char *szDriver, *szDevice, *szOutput;
235 
236    GetProfileString("windows", "device", "", szProfile, 70);
237 
238    szDevice = (char *) strtok(szProfile, ",");
239    szDriver = (char *) strtok(NULL,     ",");
240    szOutput = (char *) strtok(NULL,     ",");
241 
242    if (szDevice && szDriver && szOutput)
243     {
244       hPrnDC = CreateDC(szDriver, szDevice, szOutput, NULL);
245       return (hPrnDC);
246     }
247 
248    return (NULL);
249 }
250 
251 
252 
253 void PrintGraph(HWND hWnd)
254 {
255    HDC      hDC, hMemDC;
256    HDC      hPrnDC;
257    HBITMAP  hBitmap;
258    BOOL     bPrinted = TRUE;
259    char     szName[] = "Demo8_1 -- Print test";
260 
261    hPrnDC = CreateDC_Printer();
262    if (hPrnDC == NULL)
263      {
264        MessageBox(hWnd, "Printer Error", NULL,
265                   MB_OK | MB_ICONHAND);
266        return ;
267      }
268 
269    hDC = GetDC(hWnd);
270    hMemDC = CreateCompatibleDC(hDC);
271    hBitmap = CreateCompatibleBitmap(hDC, CX, CY);
272 
273    SelectObject(hMemDC, hBitmap);
274    BitBlt(hMemDC, 0, 0, CX, CY, hDC, 0, 0, SRCCOPY);
275    ReleaseDC(hWnd, hDC);
276 
277    if (Escape(hPrnDC, STARTDOC,
278               strlen(szName), szName, NULL) > 0)
279      {
280        BitBlt(hPrnDC, 0, 0, CX, CY, hMemDC, 0, 0, SRCCOPY);
281 
282        if (Escape(hPrnDC, NEWFRAME, 0, NULL, NULL) > 0)
283          Escape(hPrnDC, ENDDOC, 0, NULL, NULL);
284        else
285          bPrinted = FALSE;
286      }
287    else
288      bPrinted = FALSE;
289 
290    if (! bPrinted)
291      MessageBox(hWnd, "Print Error", NULL,
292                 MB_OK | MB_ICONHAND);
293 
294    DeleteDC(hPrnDC);
295    DeleteDC(hMemDC);
296    DeleteObject(hBitmap);
297 }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久先锋影音av鲁色资源| 国产不卡免费视频| 欧美亚洲免费在线一区| 一区二区高清免费观看影视大全 | 婷婷国产在线综合| 在线不卡免费av| 久久国产精品露脸对白| 国产午夜亚洲精品理论片色戒| 国产精品1区2区3区| 国产精品卡一卡二| 日本高清不卡一区| 美女视频免费一区| 国产日产精品1区| 色狠狠一区二区三区香蕉| 日韩成人午夜精品| 国产午夜一区二区三区| 日本韩国一区二区| 蜜芽一区二区三区| 中文字幕高清一区| 在线观看亚洲精品| 捆绑调教美女网站视频一区| 国产精品人妖ts系列视频| 91国内精品野花午夜精品| 美腿丝袜亚洲综合| 中文字幕人成不卡一区| 91精品国产欧美一区二区| 国产成人aaaa| 天堂在线一区二区| 国产精品人成在线观看免费| 欧美午夜精品久久久| 国产一区二区精品久久| 亚洲欧美日韩国产成人精品影院 | 亚洲精品一线二线三线无人区| 国产成人精品影院| 婷婷国产在线综合| 国产精品家庭影院| 日韩欧美在线一区二区三区| aa级大片欧美| 久久精品免费看| 夜夜嗨av一区二区三区网页| www国产精品av| 欧美日韩在线播| 95精品视频在线| 国产精品小仙女| 美腿丝袜亚洲一区| 亚洲午夜激情av| 国产精品成人一区二区三区夜夜夜| 91精品蜜臀在线一区尤物| 91麻豆国产精品久久| 国产一区激情在线| 美女视频一区二区三区| 亚洲国产精品一区二区www| 中文字幕免费观看一区| 欧美精品一区二区三区蜜桃| 欧美精品久久久久久久久老牛影院 | 国产成人综合亚洲网站| 日本午夜一本久久久综合| 亚洲黄一区二区三区| 日本一区二区免费在线观看视频 | 亚洲精品在线三区| 欧美一区二区三区视频免费| 欧美亚洲动漫精品| 色综合久久88色综合天天6| 国产a久久麻豆| 韩国一区二区视频| 日韩av网站免费在线| 婷婷久久综合九色综合绿巨人| 亚洲一区二区免费视频| 尤物av一区二区| 一区二区三区中文字幕电影| 中文字幕欧美一| 中文字幕亚洲电影| 国产精品麻豆欧美日韩ww| 国产婷婷一区二区| 久久精品欧美一区二区三区麻豆| 精品国产免费视频| 久久久av毛片精品| 国产亚洲欧美中文| 日本一区二区电影| 国产精品私房写真福利视频| 国产婷婷一区二区| 成人免费在线视频| 亚洲男人的天堂在线观看| 亚洲乱码国产乱码精品精可以看 | 青青草一区二区三区| 三级成人在线视频| 久久精品国产成人一区二区三区| 麻豆成人久久精品二区三区红 | 中文字幕一区二区5566日韩| 中文字幕一区二区三区四区 | 欧美一区二区精品在线| 91精品国产色综合久久不卡电影| 欧美二区乱c少妇| 制服丝袜中文字幕亚洲| 欧美变态口味重另类| 国产日产欧美一区| 一区二区在线观看免费视频播放| 五月天亚洲婷婷| 国内一区二区视频| www.欧美.com| 欧美日韩免费不卡视频一区二区三区| 欧美日韩精品欧美日韩精品一| 日韩女优视频免费观看| 国产精品亲子乱子伦xxxx裸| 亚洲综合激情网| 久久精品国产**网站演员| 丁香婷婷综合五月| 欧洲亚洲国产日韩| 精品美女在线观看| 亚洲女人****多毛耸耸8| 青青草一区二区三区| eeuss影院一区二区三区| 欧美日韩一区二区电影| 久久久噜噜噜久久中文字幕色伊伊 | 91色在线porny| 欧美一区二区免费观在线| 久久精品视频一区二区| 夜色激情一区二区| 狠狠色狠狠色综合系列| 成人动漫一区二区| 欧美一区二区日韩一区二区| 国产精品久久久久久亚洲伦| 午夜精品一区二区三区免费视频 | 亚洲视频中文字幕| 美女一区二区视频| 色综合久久中文综合久久97| 日韩女同互慰一区二区| 亚洲日本va午夜在线影院| 久久精品国产一区二区| 91福利国产成人精品照片| 久久一区二区三区四区| 婷婷丁香激情综合| 97久久精品人人澡人人爽| 精品少妇一区二区三区日产乱码 | 久久女同精品一区二区| 亚洲国产综合色| 成人av资源在线| 欧美精品一区二区三区四区| 午夜精品成人在线| 色呦呦日韩精品| 欧美激情在线一区二区三区| 青草国产精品久久久久久| 色激情天天射综合网| 国产精品国产三级国产有无不卡| 麻豆精品在线看| 欧美日韩亚洲综合| 亚洲男人天堂一区| 成人97人人超碰人人99| 精品理论电影在线| 青青草原综合久久大伊人精品优势 | 久久一区二区视频| 日韩av电影免费观看高清完整版 | 精品国产髙清在线看国产毛片 | 亚洲精品视频一区| 成人午夜在线播放| 久久精品亚洲精品国产欧美| 久久草av在线| 日韩欧美一二三| 日产欧产美韩系列久久99| 欧美日韩一区二区三区免费看 | 99国产欧美另类久久久精品 | 日本丶国产丶欧美色综合| 国产精品久久毛片a| 成人性生交大片免费看视频在线| 久久久精品欧美丰满| 精品一二三四在线| 久久久久亚洲蜜桃| 国产成人综合亚洲网站| 久久九九国产精品| 国产aⅴ精品一区二区三区色成熟| 精品国精品国产尤物美女| 久久99九九99精品| 2020日本不卡一区二区视频| 激情综合亚洲精品| 久久男人中文字幕资源站| 国产高清精品网站| 国产精品卡一卡二卡三| 91香蕉国产在线观看软件| 一区二区三区国产| 欧美男同性恋视频网站| 久久精品99国产精品| 欧美精品一区二区三区在线| 国产jizzjizz一区二区| 最近日韩中文字幕| 欧美视频自拍偷拍| 麻豆91在线看| 国产精品嫩草影院av蜜臀| 91啪亚洲精品| 日日夜夜免费精品视频| 欧美成人性福生活免费看| 粉嫩av一区二区三区在线播放 | 国产日韩精品一区二区三区在线| 国产高清不卡一区| 亚洲天堂免费在线观看视频| 欧美日韩国产欧美日美国产精品| 久久se精品一区精品二区| 国产精品欧美精品| 91国内精品野花午夜精品| 奇米亚洲午夜久久精品| 中文字幕av一区二区三区高 |