zoukankan      html  css  js  c++  java
  • 用纯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 "植物大战僵尸鼠标外挂——zhuangtaiqiusi@163.com"
     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           "联系方式:zhuangtaiqiusi@163.com",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 }
  • 相关阅读:
    android webView使用
    Android开发者必知的开发资源(转载)
    Android中的消息推送(转载)
    Android消息处理系统——Looper、Handler、Thread(转载)
    Android之单元测试学习(转载)
    ndroid获得Bitmap的三种方法(转载)
    Android性能调优(转载)
    Android的开机流程(转载)
    Android命名规范(自定义)(转载)
    无法解决 equal to 操作中 Latin1_General_CI_AI 和 Chinese_PRC
  • 原文地址:https://www.cnblogs.com/xuesongshu/p/2867178.html
Copyright © 2011-2022 走看看