用纯C语言写的一个植物大战僵尸的外挂

转载请注明来源:http://www.cnblogs.com/xuesongshu/

这个外挂主要用来帮助鼠标点击的。最近很忙,代码注释我以后会慢慢补充进来。请多多指点。

  1 #include "PC2StdAfx.h"

  2 

  3 BOOL CALLBACK PCEnumDlgItem(HWND,LPARAM);

  4 BOOL CALLBACK PCEnumWindows(HWND,LPARAM);

  5 LRESULT CALLBACK PCMainWinProc(HWND,UINT,WPARAM,LPARAM);

  6 BOOL CALLBACK PCHelpWinProc(HWND,UINT,WPARAM,LPARAM);

  7 void PC2WmHotKey(HWND hwnd,WPARAM wparam);

  8 void PC2WmCommand(HWND hwnd,WPARAM wparam);

  9 void PC2WmTimer();

 10 

 11 TCHAR szAppName[]=TEXT("PCMainWin");

 12 

 13 //界面类

 14 TCHAR szStart[256],szStop[256],szPointFormat[256],szHelpResName[256],szComputePoint[256],szClearPoint[256];

 15 //提示类

 16 TCHAR szMousePositionError[256],szOperateTip[256],szGlobalFastKey[256],szLUFirst[256],szLUBiggerRD[256],szPointNotComeplete[256];

 17 

 18 static HFONT hfont;

 19 HWND hDlg=NULL;

 20 

 21 int WINAPI WinMain( IN HINSTANCE hInstance, IN HINSTANCE hPrevInstance, IN LPSTR lpCmdLine, IN int nShowCmd )

 22 {

 23     MSG msg;

 24     HWND hwnd;

 25     WNDCLASS wc;

 26     

 27     TCHAR szFontName[256];

 28     wc.cbClsExtra=0;

 29     wc.cbWndExtra=DLGWINDOWEXTRA;

 30     wc.hbrBackground=CreateSolidBrush(GetSysColor(COLOR_BTNFACE));

 31     wc.hCursor=LoadCursor(hInstance,TEXT("PCCursor"));

 32     wc.hIcon=LoadIcon(hInstance,TEXT("PCIcon"));

 33     wc.hInstance=hInstance;

 34     wc.lpfnWndProc=PCMainWinProc;

 35     wc.lpszClassName=szAppName;

 36     wc.lpszMenuName=TEXT("PCMenu");

 37     wc.style=CS_HREDRAW|CS_VREDRAW;

 38     if (!RegisterClass(&wc))

 39     {

 40         return 0;

 41     }

 42     hwnd=CreateDialog(hInstance,szAppName,NULL,NULL);

 43     if (!hwnd)

 44     {

 45         return 0;

 46     }

 47     LoadString(hInstance,IDS_STRINGFONT,szFontName,256);

 48     LoadString(hInstance,IDS_MOUSEPOSITIONERROR,szMousePositionError,256);

 49     LoadString(hInstance,IDS_OPERATETIP,szOperateTip,256);

 50     LoadString(hInstance,IDS_START,szStart,256);

 51     LoadString(hInstance,IDS_STOP,szStop,256);

 52     LoadString(hInstance,IDS_POINTFORMAT,szPointFormat,256);

 53     LoadString(hInstance,IDS_GLOBALFASTKEY,szGlobalFastKey,256);

 54     LoadString(hInstance,IDS_HELPRESNAME,szHelpResName,256);

 55     LoadString(hInstance,IDS_COMPUTEPOINT,szComputePoint,256);

 56     LoadString(hInstance,IDS_CLEARPOINT,szClearPoint,256);

 57     LoadString(hInstance,IDS_LUFIRST,szLUFirst,256);

 58     LoadString(hInstance,IDS_LUBIGGERRD,szLUBiggerRD,256);

 59     LoadString(hInstance,IDS_POINTNOTCOMPLETE,szPointNotComeplete,256);

 60     hfont=CreateFont(18,0,0,0,FW_NORMAL,NULL,NULL,NULL,GB2312_CHARSET,NULL,NULL,NULL,NULL,szFontName);

 61     if (hfont==NULL)

 62     {

 63         hfont=(HFONT)GetStockObject(DEFAULT_GUI_FONT);

 64     }

 65     SendMessage(hwnd,0xFFFC,NULL,(LPARAM)hfont);

 66     while (GetMessage(&msg,NULL,0,0))

 67     {

 68         if (hDlg==0||!IsDialogMessage(hDlg,&msg))

 69         {

 70             TranslateMessage(&msg);

 71             DispatchMessage(&msg);

 72         }

 73     }

 74     return 0;

 75 }

 76 

 77 //主窗口消息处理函数。

 78 LRESULT CALLBACK PCMainWinProc(HWND hwnd,UINT msg,WPARAM wparam,LPARAM lparam) 

 79 {

 80     switch (msg)

 81     {

 82     case 0xFFFC:

 83         EnumWindows((WNDENUMPROC)PCEnumWindows,NULL);

 84         EnumChildWindows(hwnd,(WNDENUMPROC)PCEnumDlgItem,lparam);

 85         InvalidateRect(hwnd,NULL,true);

 86         //CTRL+SHIFT+A

 87         RegisterHotKey(hwnd,PICKCOIN_LU,MOD_CONTROL|MOD_SHIFT,0x41);

 88         //CTRL+SHIFT+S

 89         RegisterHotKey(hwnd,PICKCOIN_START,MOD_CONTROL|MOD_SHIFT,0x53);

 90         //CTRL+SHIFT+Z

 91         RegisterHotKey(hwnd,PICKCOIN_COMPUTE,MOD_CONTROL|MOD_SHIFT,0x5A);

 92         //CTRL+SHIFT+X

 93         RegisterHotKey(hwnd,PICKCOIN_RD,MOD_CONTROL|MOD_SHIFT,0x58);

 94         return 0;

 95     case WM_HOTKEY:

 96         PC2WmHotKey(hwnd,wparam);

 97         return 0;

 98     case WM_KEYDOWN:

 99         switch(wparam)

100         {

101         case VK_SHIFT:

102             break;

103         }

104         return 0;

105     case WM_TIMER:

106         PC2WmTimer();

107         return 0;

108     case WM_COMMAND:

109         PC2WmCommand(hwnd,wparam);

110         return 0;

111     case WM_DESTROY:

112         UnregisterHotKey(hwnd,PICKCOIN_LU);

113         UnregisterHotKey(hwnd,PICKCOIN_RD);

114         UnregisterHotKey(hwnd,PICKCOIN_START);

115         UnregisterHotKey(hwnd,PICKCOIN_COMPUTE);

116         PostQuitMessage(0);

117         return 0;

118     }

119     return DefWindowProc(hwnd,msg,wparam,lparam);

120 }

121 

122 //设定控件字体。

123 BOOL CALLBACK PCEnumDlgItem(HWND hwnd,LPARAM lparam)

124 {

125     SendMessage(hwnd,WM_SETFONT,(WPARAM)(HFONT)lparam,NULL);

126     return true;

127 }

128 

129 

130 

131 //帮助对话框,返回值0表示需要windows自带消息处理函数处理逻辑。

132 BOOL CALLBACK PCHelpWinProc(HWND hwnd,UINT msg,WPARAM wparam,LPARAM lparam)

133 {

134     switch(msg)

135     {

136     case WM_INITDIALOG:

137         EnumChildWindows(hwnd,(WNDENUMPROC)PCEnumDlgItem,(LPARAM)hfont);

138         return 0;

139     case WM_NCLBUTTONDOWN:

140         if (DefWindowProc(hwnd,WM_NCHITTEST,wparam,lparam)==HTCLOSE)

141         {

142             EndDialog(hwnd,TRUE);

143             hDlg=NULL;

144             return 0;

145         }

146         return false;

147     case WM_DESTROY:

148         EndDialog(hwnd,TRUE);

149         return 0;

150     }

151     return 0;

152 }
#define _WIN32_WINNT 0x0601

#define WINVER 0x0601

#define PICKCOIN_LU 0x7FFC

#define PICKCOIN_RD 0x7FFB

#define PICKCOIN_COMPUTE 0x7FFA

#define PICKCOIN_START 0x7FF9

#define ID_PICKCOIN_TIMER 0x7FF8

#define PICKCOIN_PIXELDISTANCE 40

#define PICKCOIN_TIMESPAN 1000

#include <Windows.h>

#include <vector>

#include "resource.h"

#ifdef _WIN32_WINNT

#endif
 1 //{{NO_DEPENDENCIES}}

 2 // Microsoft Developer Studio generated include file.

 3 // Used by PC2Res.rc

 4 //

 5 #define IDS_STRING1                     1

 6 #define IDS_STRINGFONT                  1

 7 #define IDS_MOUSEPOSITIONERROR          2

 8 #define IDS_OPERATETIP                  3

 9 #define IDS_START                       4

10 #define IDS_STOP                        5

11 #define IDS_POINTFORMAT                 6

12 #define IDS_GLOBALFASTKEY               7

13 #define IDS_HELPRESNAME                 8

14 #define IDS_COMPUTEPOINT                9

15 #define IDS_CLEARPOINT                  10

16 #define IDS_LUFIRST                     11

17 #define IDS_LUBIGGERRD                  12

18 #define IDS_POINTNOTCOMPLETE            13

19 #define IDC_BUTTONLU                    1000

20 #define IDC_BUTTONSTART                 1001

21 #define IDC_STATICLU                    1002

22 #define IDC_BUTTONRD                    1007

23 #define IDC_STATICRD                    1008

24 #define IDC_BUTTONCOMPUTE               1009

25 #define ID_MENUITEM40001                40001

26 

27 // Next default values for new objects

28 // 

29 #ifdef APSTUDIO_INVOKED

30 #ifndef APSTUDIO_READONLY_SYMBOLS

31 #define _APS_NEXT_RESOURCE_VALUE        106

32 #define _APS_NEXT_COMMAND_VALUE         40002

33 #define _APS_NEXT_CONTROL_VALUE         1015

34 #define _APS_NEXT_SYMED_VALUE           101

35 #endif

36 #endif
  1 //Microsoft Developer Studio generated resource script.

  2 //

  3 #include "resource.h"

  4 

  5 #define APSTUDIO_READONLY_SYMBOLS

  6 /////////////////////////////////////////////////////////////////////////////

  7 //

  8 // Generated from the TEXTINCLUDE 2 resource.

  9 //

 10 #include "afxres.h"

 11 

 12 /////////////////////////////////////////////////////////////////////////////

 13 #undef APSTUDIO_READONLY_SYMBOLS

 14 

 15 /////////////////////////////////////////////////////////////////////////////

 16 // Chinese (P.R.C.) resources

 17 

 18 #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)

 19 #ifdef _WIN32

 20 LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED

 21 #pragma code_page(936)

 22 #endif //_WIN32

 23 

 24 #ifdef APSTUDIO_INVOKED

 25 /////////////////////////////////////////////////////////////////////////////

 26 //

 27 // TEXTINCLUDE

 28 //

 29 

 30 1 TEXTINCLUDE DISCARDABLE 

 31 BEGIN

 32     "resource.h\0"

 33 END

 34 

 35 2 TEXTINCLUDE DISCARDABLE 

 36 BEGIN

 37     "#include ""afxres.h""\r\n"

 38     "\0"

 39 END

 40 

 41 3 TEXTINCLUDE DISCARDABLE 

 42 BEGIN

 43     "\r\n"

 44     "\0"

 45 END

 46 

 47 #endif    // APSTUDIO_INVOKED

 48 

 49 

 50 /////////////////////////////////////////////////////////////////////////////

 51 //

 52 // Dialog

 53 //

 54 

 55 PCMAINWIN DIALOG DISCARDABLE  0, 0, 187, 122

 56 STYLE DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU

 57 CAPTION "植物大战僵尸鼠标外挂——[email protected]"

 58 CLASS "PCMainWin"

 59 FONT 10, "System"

 60 BEGIN

 61     PUSHBUTTON      "定位(CTRL+SHIFT+A)",IDC_BUTTONLU,13,13,86,18

 62     RTEXT           "左上角:",IDC_STATIC,100,13,33,18,SS_CENTERIMAGE

 63     LTEXT           "(0,0)",IDC_STATICLU,136,13,44,18,SS_CENTERIMAGE

 64     PUSHBUTTON      "开始(CTRL+SHIFT+S)",IDC_BUTTONSTART,13,85,160,18

 65     PUSHBUTTON      "定位(CTRL+SHIFT+X)",IDC_BUTTONRD,13,37,86,18

 66     RTEXT           "右下角:",IDC_STATIC,100,38,33,18,SS_CENTERIMAGE

 67     LTEXT           "(0,0)",IDC_STATICRD,136,38,44,18,SS_CENTERIMAGE

 68     PUSHBUTTON      "计算坐标(CTRL_SHIFT+Z)",IDC_BUTTONCOMPUTE,13,61,160,18

 69 END

 70 

 71 PCHELP DIALOG DISCARDABLE  0, 0, 187, 94

 72 STYLE DS_CENTER | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU

 73 CAPTION "关于作者"

 74 FONT 10, "System"

 75 BEGIN

 76     LTEXT           "作者:曹威",IDC_STATIC,7,7,173,14

 77     LTEXT           "联系方式:[email protected]",IDC_STATIC,7,23,173,

 78                     14

 79     LTEXT           "版权所有,侵权必究",IDC_STATIC,7,39,173,14

 80     LTEXT           "^_^ ^_^",IDC_STATIC,7,55,173,14

 81 END

 82 

 83 

 84 /////////////////////////////////////////////////////////////////////////////

 85 //

 86 // DESIGNINFO

 87 //

 88 

 89 #ifdef APSTUDIO_INVOKED

 90 GUIDELINES DESIGNINFO DISCARDABLE 

 91 BEGIN

 92     "PCMAINWIN", DIALOG

 93     BEGIN

 94         LEFTMARGIN, 7

 95         RIGHTMARGIN, 180

 96         TOPMARGIN, 7

 97         BOTTOMMARGIN, 115

 98     END

 99 

100     "PCHELP", DIALOG

101     BEGIN

102         LEFTMARGIN, 7

103         RIGHTMARGIN, 180

104         TOPMARGIN, 7

105         BOTTOMMARGIN, 87

106     END

107 END

108 #endif    // APSTUDIO_INVOKED

109 

110 

111 /////////////////////////////////////////////////////////////////////////////

112 //

113 // Icon

114 //

115 

116 // Icon with lowest ID value placed first to ensure application icon

117 // remains consistent on all systems.

118 PCICON                  ICON    DISCARDABLE     "FACE02.ICO"

119 

120 /////////////////////////////////////////////////////////////////////////////

121 //

122 // Cursor

123 //

124 

125 PCCURSOR                CURSOR  DISCARDABLE     "cursor1.cur"

126 

127 /////////////////////////////////////////////////////////////////////////////

128 //

129 // Menu

130 //

131 

132 PCMENU MENU DISCARDABLE 

133 BEGIN

134     POPUP "帮助"

135     BEGIN

136         MENUITEM "关于作者",                    ID_MENUITEM40001

137     END

138 END

139 

140 

141 /////////////////////////////////////////////////////////////////////////////

142 //

143 // String Table

144 //

145 

146 STRINGTABLE DISCARDABLE 

147 BEGIN

148     IDS_STRINGFONT          "华文中宋"

149     IDS_MOUSEPOSITIONERROR  "鼠标请放置于目标窗口的显示范围内!"

150     IDS_OPERATETIP          "操作提示"

151     IDS_START               "开始(CTRL+SHIFT+S)"

152     IDS_STOP                "停止(CTRL+SHIFT+S)"

153     IDS_POINTFORMAT         "(%d,%d)"

154     IDS_GLOBALFASTKEY       "请使用全局快捷键!"

155     IDS_HELPRESNAME         "PCHelp"

156     IDS_COMPUTEPOINT        "计算坐标(CTRL_SHIFT+Z)"

157     IDS_CLEARPOINT          "清空坐标(CTRL_SHIFT+Z)"

158     IDS_LUFIRST             "请先定义左上角坐标!"

159     IDS_LUBIGGERRD          "左上角坐标大于右下角坐标!"

160     IDS_POINTNOTCOMPLETE    "坐标未定义完毕。请检查左上角坐标和右下角坐标的值。"

161 END

162 

163 #endif    // Chinese (P.R.C.) resources

164 /////////////////////////////////////////////////////////////////////////////

165 

166 

167 

168 #ifndef APSTUDIO_INVOKED

169 /////////////////////////////////////////////////////////////////////////////

170 //

171 // Generated from the TEXTINCLUDE 3 resource.

172 //

173 

174 

175 /////////////////////////////////////////////////////////////////////////////

176 #endif    // not APSTUDIO_INVOKED

 

  1 #include "PC2StdAfx.h"

  2 

  3 extern HWND hDlg;

  4 //界面类

  5 extern TCHAR szStart[256],szStop[256],szPointFormat[256],szHelpResName[256],szComputePoint[256],szClearPoint[256];

  6 //提示类

  7 extern TCHAR szMousePositionError[256],szOperateTip[256],szGlobalFastKey[256],szLUFirst[256],szLUBiggerRD[256],szPointNotComeplete[256];

  8 

  9 bool bBeg=false,bCompute=false;

 10 std::vector<POINT> vpt;

 11 HWND hDst=NULL;

 12 RECT rtDst;

 13 

 14 void PC2ButtonStart(HWND hwnd);

 15 void PC2ComputePoint(HWND hwnd);

 16 BOOL CALLBACK PCHelpWinProc(HWND,UINT,WPARAM,LPARAM);

 17 

 18 void PC2WmHotKey(HWND hwnd,WPARAM wparam)

 19 {

 20     TCHAR szLocation[256];

 21     POINT pt;

 22     switch(wparam)

 23     {

 24     case PICKCOIN_LU:

 25         GetCursorPos(&pt);

 26         ScreenToClient(hDst,&pt);

 27         if (pt.x<0||pt.x>rtDst.right-rtDst.left||pt.y<0||pt.y>rtDst.bottom-rtDst.top)

 28         {

 29             MessageBox(hwnd,szMousePositionError,szOperateTip,MB_OK|MB_ICONERROR);

 30             break;

 31         }

 32         vpt.clear();

 33         vpt.push_back(pt);

 34         wsprintf(szLocation,szPointFormat,pt.x,pt.y);

 35         SetDlgItemText(hwnd,IDC_STATICLU,szLocation);

 36         break;

 37     case PICKCOIN_RD:

 38         if (vpt.size()==0)

 39         {

 40             MessageBox(hwnd,szLUFirst,szOperateTip,MB_OK|MB_ICONERROR);

 41             break;

 42         }

 43         GetCursorPos(&pt);

 44         ScreenToClient(hDst,&pt);

 45         if (pt.x<0||pt.x>rtDst.right-rtDst.left||pt.y<0||pt.y>rtDst.bottom-rtDst.top)

 46         {

 47             MessageBox(hwnd,szMousePositionError,szOperateTip,MB_OK|MB_ICONERROR);

 48             break;

 49         }

 50         while (vpt.size()>1)

 51         {

 52             vpt.pop_back();

 53         }

 54         if (pt.x<vpt[0].x||pt.y<vpt[0].y)

 55         {

 56             MessageBox(hwnd,szLUBiggerRD,szOperateTip,MB_OK|MB_ICONERROR);

 57             break;

 58         }

 59         vpt.push_back(pt);

 60         wsprintf(szLocation,szPointFormat,pt.x,pt.y);

 61         SetDlgItemText(hwnd,IDC_STATICRD,szLocation);

 62         break;

 63     case PICKCOIN_START:

 64         PC2ButtonStart(hwnd);

 65         break;

 66     case PICKCOIN_COMPUTE:

 67         PC2ComputePoint(hwnd);

 68         break;

 69     }

 70 

 71 }

 72 

 73 void PC2WmCommand(HWND hwnd,WPARAM wparam)

 74 {

 75     int nId,nEvent;

 76     nId=LOWORD(wparam);

 77     nEvent=HIWORD(wparam);

 78     switch(nId)

 79     {

 80     case IDC_BUTTONLU:

 81     case IDC_BUTTONRD:

 82         MessageBox(hwnd,szGlobalFastKey,szOperateTip,MB_OK|MB_ICONERROR);

 83         return;

 84     case IDC_BUTTONCOMPUTE:

 85         PC2ComputePoint(hwnd);

 86         break;

 87     case IDC_BUTTONSTART:

 88         PC2ButtonStart(hwnd);

 89         break;

 90     case ID_MENUITEM40001:

 91         hDlg=(HWND)DialogBox((HINSTANCE)GetWindowLong(hwnd,GWL_HINSTANCE),szHelpResName,hwnd,PCHelpWinProc);

 92         break;

 93     default:

 94         break;

 95     }

 96 }

 97 

 98 void PC2WmTimer()

 99 {

100     std::vector<POINT>::reverse_iterator vptit;

101     int x,y;

102     DWORD dwLparam=0;

103     DWORD *pdwLparam=&dwLparam;

104     for (vptit=vpt.rbegin();vptit<vpt.rend();++vptit)

105     {

106         x=vptit->x;

107         y=vptit->y;

108         __asm

109         {

110             PUSH EAX

111                 PUSH EBX

112                 PUSH ECX

113                 MOV EAX,x

114                 MOV EBX,y

115                 MOV ECX,pdwLparam

116                 MOV WORD PTR [ECX],AX

117                 ADD ECX,2

118                 MOV WORD PTR [ECX],BX

119                 POP ECX

120                 POP EBX

121                 POP EAX

122         }

123         SendMessage(hDst,WM_LBUTTONDOWN,1,dwLparam);

124         SendMessage(hDst,WM_LBUTTONUP,0,dwLparam);

125     }

126 }

127 

128 //查找植物大战僵尸游戏主窗口。

129 BOOL CALLBACK PCEnumWindows(HWND hwnd,LPARAM lparam)

130 {

131     TCHAR szTitle[256];

132     RECT rtTmp;

133     GetWindowText(hwnd,szTitle,256);

134     if (lstrlen(szTitle)>0)

135     {

136         std::string strTitle=szTitle;

137         if(strTitle.find("Plants vs.")!=std::string::npos)

138         {

139             GetWindowRect(hwnd,&rtTmp);

140             if (rtTmp.left<0||rtTmp.top<0)

141             {

142                 return true;

143             }

144             if (rtTmp.right-rtTmp.left>300)

145             {

146                 hDst=hwnd;

147                 rtDst=rtTmp;

148             }

149         }

150     }

151     return true;

152 }

153 

154 void PC2ButtonStart(HWND hwnd)

155 {

156     if (bBeg)

157     {

158         KillTimer(hwnd,ID_PICKCOIN_TIMER);

159         SetDlgItemText(hwnd,IDC_BUTTONSTART,szStart);

160     } 

161     else

162     {

163         if (vpt.size()<2)

164         {

165             MessageBox(hwnd,szPointNotComeplete,szOperateTip,MB_OK|MB_ICONERROR);

166             return;

167         }

168         SetTimer(hwnd,ID_PICKCOIN_TIMER,PICKCOIN_TIMESPAN,NULL);

169         SetDlgItemText(hwnd,IDC_BUTTONSTART,szStop);

170     }

171     bBeg=!bBeg;

172 }

173 

174 void PC2ComputePoint(HWND hwnd)

175 {

176     POINT ptLU,ptRD,ptTmp;

177     int i,j;

178     if (bCompute)

179     {

180         vpt.clear();

181         SetDlgItemText(hwnd,IDC_STATICLU,TEXT("(0,0)"));

182         SetDlgItemText(hwnd,IDC_STATICRD,TEXT("(0,0)"));

183         SetDlgItemText(hwnd,IDC_BUTTONCOMPUTE,szComputePoint);

184     } 

185     else

186     {

187         if (vpt.size()<2)

188         {

189             MessageBox(hwnd,szPointNotComeplete,szOperateTip,MB_OK|MB_ICONERROR);

190             return;

191         }

192         ptLU=vpt[0];

193         ptRD=vpt[1];

194         vpt.clear();

195         for (i=ptLU.x;i<ptRD.x;i+=PICKCOIN_PIXELDISTANCE)

196         {

197             ptTmp.x=i;

198             ptTmp.y=ptRD.y;

199             vpt.push_back(ptTmp);

200         }

201         for (j=ptLU.y;j<ptRD.y;j+=PICKCOIN_PIXELDISTANCE)

202         {

203             ptTmp.x=ptRD.x;

204             ptTmp.y=j;

205             vpt.push_back(ptTmp);

206         }

207         for (i=ptLU.x;i<ptRD.x;i+=PICKCOIN_PIXELDISTANCE)

208         {

209             for (j=ptLU.y;j<ptRD.y;j+=PICKCOIN_PIXELDISTANCE)

210             {

211                 ptTmp.x=i;

212                 ptTmp.y=j;

213                 vpt.push_back(ptTmp);

214             }

215         }

216         vpt.push_back(ptLU);

217         vpt.push_back(ptRD);

218         SetDlgItemText(hwnd,IDC_BUTTONCOMPUTE,szClearPoint);

219     }

220     bCompute=!bCompute;

221 }

 

你可能感兴趣的:(C语言)