📄 demo4_7d.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 + -