⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 demo4_7d.c

📁 WINDOWS图形编程随书光盘
💻 C
字号:
  1 #include "demo4_7.h"
  2 #include <windows.h>
  3 
  4 
  5 void FAR PASCAL LineDDAProc(short, short, LPSTR);
  6 
  7 COLORREF ColorStyle[3][16] =
  8   {  { RGB(255,255,255), RGB(255,  0,  0), RGB(  0,255,  0),
  9        RGB(  0,  0,255), RGB(255,255,  0), RGB(  0,255,255),
 10        RGB(255,  0,255), RGB(192,192,192), RGB(128,  0,  0),
 11        RGB(  0,128,  0), RGB(  0,  0,128), RGB(128,128,  0),
 12        RGB(  0,128,128), RGB(128,  0,128), RGB(128,128,128),
 13        RGB(255,255,128)
 14      },
 15      { RGB(255,  0,  0), RGB(  0,255,  0), RGB(  0,  0,255),
 16        RGB(255,  0,  0), RGB(  0,255,  0), RGB(  0,  0,255),
 17        RGB(255,  0,  0), RGB(  0,255,  0), RGB(  0,  0,255),
 18        RGB(255,  0,  0), RGB(  0,255,  0), RGB(  0,  0,255),
 19        RGB(255,  0,  0), RGB(  0,255,  0), RGB(  0,  0,255),
 20        RGB(255,  0,  0)
 21      },
 22      { RGB(255,  0,  0), RGB(255, 16, 16), RGB(255, 32, 32),
 23        RGB(255, 48, 48), RGB(255, 64, 64), RGB(255, 80, 80),
 24        RGB(255, 96, 96), RGB(255,112,112), RGB(255,128,128),
 25        RGB(255,144,144), RGB(255,160,160), RGB(255,176,176),
 26        RGB(255,192,192), RGB(255,208,208), RGB(255,224,224),
 27        RGB(255,255,255)
 28      }
 29   };
 30 
 31 extern FARPROC lpLineDDAProc;
 32 extern HANDLE  hInst;
 33 extern int     StyleID;
 34 
 35 
 36 void ReDrawLine(HANDLE hCtrl)
 37 {
 38    RECT     Client;
 39    HDC      hDC;
 40    int      Y;
 41 
 42    hDC = GetDC(hCtrl);
 43    GetClientRect(hCtrl, &Client);
 44 
 45    lpLineDDAProc = MakeProcInstance((FARPROC) LineDDAProc,
 46                                     hInst);
 47 
 48    Y = (Client.top + Client.bottom) / 2;
 49    LineDDA(Client.left, Y, Client.right, Y,
 50            lpLineDDAProc, (LPSTR) &hDC);
 51 
 52    FreeProcInstance(lpLineDDAProc);
 53 
 54    ReleaseDC(hCtrl, hDC);
 55 }
 56 
 57 
 58 
 59 BOOL FAR PASCAL LineDlgProc(HWND hDlg, unsigned msg,
 60                             WORD wParam, LONG lParam)
 61 {
 62    HANDLE     hCtrl;
 63    static int nChooseStyle;
 64    int        nTemp, i;
 65 
 66    switch (msg)
 67      {
 68        case WM_INITDIALOG :
 69           SetFocus(GetDlgItem(hDlg, StyleID));
 70           return (FALSE);
 71 
 72        case WM_CLOSE :
 73           EndDialog(hDlg, FALSE);
 74           return (TRUE);
 75 
 76        case WM_PAINT :
 77           nTemp = StyleID;
 78 
 79           for (i=0; i<3; i++)
 80             {
 81               hCtrl = GetDlgItem(hDlg, DI_LINE1+i);
 82               StyleID = DI_STYLE1 + i;
 83               ReDrawLine(hCtrl);
 84             }
 85 
 86           StyleID = nTemp;
 87           return (FALSE);
 88 
 89        case WM_COMMAND :
 90           switch (wParam)
 91             {
 92               case DI_OK :
 93                   StyleID = nChooseStyle;
 94                   EndDialog(hDlg, TRUE);
 95                   return (TRUE);
 96 
 97               case DI_CANCEL :
 98                   EndDialog(hDlg, FALSE);
 99                   return (TRUE);
100 
101               case DI_STYLE1 :
102               case DI_STYLE2 :
103               case DI_STYLE3 :
104                   nChooseStyle = wParam;
105                   return (TRUE);
106             }
107           return (FALSE);
108 
109        default :
110           return (FALSE);
111      }
112 }
113 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -