C++ 实用手写函数库【可以写一些小游戏】

实用函数库,我无聊时会找一些神奇的东西,只是对我来说,因为我太弱了,dalao们会的我都不会QAQ。

函数库无需编译,只要放在你要用的目录下就可以了,然后include “函数名.h”。

  1 #include <cstdio>
  2 #include <conio.h>
  3 #include <cstdlib>
  4 #include <cstring>
  5 #include <fstream>
  6 #include <iostream>
  7 #include <windows.h>
  8 #include <algorithm>
  9 #define REP(i,a,b) for (int i=(a);i<=(b);i++)
 10 #define PER(i,a,b) for (int i=(a);i>=(b);i--)
 11 #define max(x,y) ((x)<(y)?(y):(x))
 12 #define min(y,x) ((x)<(y)?(x):(y))
 13 #define MEM(a,b) memset(a,(b),sizeof(a))
 14 #define KEY_DOWN(VK_NONAME) ((GetAsyncKeyState(VK_NONAME) & 0x8000) ? 1:0)//判断这个键是否按下
 15 #define KEY_UP(VK_NONAME) ((GetAsyncKeyState(VK_NONAME) & 0x8000) ? 0 : 1)//判断这个键是否弹起
 16 #define KEY_EVERY(lpkeyState) GetKeyboardState(lpKeyState)//获得所有的256个键(键盘按键、鼠标按键等等)的状态,lpKeyState是指向一个256bit的数组,存放所有键的状态。
 17 #define KEY_NOW(nVirtKey) GetKeyState(nVirtKey)//用于判断nVirtKey的状态。用返回值的最高位表示,最高位为1表示当前键处于down的状态;最高位为0当前键处于up状态。此函数从消息队列中读取消息进行处理。
 18 #define setcolor(x) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),x)//设置颜色
 19 #define getkey(x) GetAsyncKeyState(x)
 20 #define GetWindow() GetForegroundWindow();//得到窗口信息
 21 /*
 22 鼠标左键 : MOUSE_MOVED 
 23 鼠标右键 :MOUSE_EVENT
 24 鼠标滚轮 : MOUSE_WHEELED
 25 MK_CONTROL当CTRL键按下时。
 26 MK_LBUTTON当鼠标左键按下时。
 27 MK_MBUTTON当鼠标中键按下时。
 28 MK_RBUTTON当鼠标右键按下时.
 29 MK_SHIFT当SHIFT按下时。
 30 */
 31 using std::cin;
 32 using std::cout;
 33 using std::endl;
 34 int brand();
 35 void GOTO(int x,int y);
 36 int brand(){return (rand()<<16)|(rand()<<1)|(rand()&1);}
 37 void bsrand(){srand(GetTickCount());}
 38 void cls(){system("cls");}
 39 void retr(){//退出程序 
 40     HWND hWnd=GetForegroundWindow();
 41     ShowWindow(hWnd,SW_HIDE);
 42     exit(0);
 43 }
 44 void Window_Hide(HWND hWnd){ShowWindow(hWnd,0);}//隐藏窗口
 45 void Window_Show(HWND hWnd){ShowWindow(hWnd,1);}//显示窗口
 46 int getmouse_y(){//获取鼠标在屏幕中x的位置 
 47     POINT pt; 
 48     GetCursorPos(&pt);
 49     return pt.x;
 50 }
 51 int getmouse_x(){//获取鼠标在屏幕中y的位置 
 52     POINT pt; 
 53     GetCursorPos(&pt);
 54     return pt.y;
 55 }
 56 void setmouse(int y,int x){SetCursorPos(x,y);}//设置鼠标在屏幕中的位置 
 57 void click_left(){//鼠标左键点击
 58     mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);  
 59     Sleep(5);//要留给某些应用的反应时间   
 60     mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0); 
 61 }
 62 void click_right(){//鼠标右键点击
 63     mouse_event(MOUSEEVENTF_RIGHTDOWN,0,0,0,0);  
 64     Sleep(5);   
 65     mouse_event(MOUSEEVENTF_RIGHTUP,0,0,0,0);  
 66 }
 67 void GOTO(int x,int y){//将光标移动到屏幕中的位置
 68     CONSOLE_SCREEN_BUFFER_INFO csbiInfo;
 69     HANDLE hConsoleOut;
 70     hConsoleOut = GetStdHandle(STD_OUTPUT_HANDLE);
 71     GetConsoleScreenBufferInfo(hConsoleOut,&csbiInfo);
 72     csbiInfo.dwCursorPosition.Y = x;
 73     csbiInfo.dwCursorPosition.X = y;
 74     SetConsoleCursorPosition(hConsoleOut,csbiInfo.dwCursorPosition);
 75 }
 76 /* 
 77 附录1:(COLOR) 
 78 <span style="white-space:pre">    </span>字
 79     1   深蓝色
 80     2   深绿色
 81     3   深青色
 82     4   深红色
 83     5   深粉色
 84     6   黄色
 85     7   深白色
 86     8   灰色
 87     9   浅蓝色
 88     10  浅绿色
 89     11  浅青色
 90     12  浅红色
 91     13  浅粉色
 92     14  浅黄色
 93     15  浅白色
 94 
 95     背景 
 96     1~15        黑色
 97     16~31       深蓝色
 98     32~47       深绿色
 99     48~63       深青色
100     64~79       深红色
101     80~95       深粉色
102     96~111      深黄色
103     112~127     深白色
104     128~143     灰色
105     144~159     浅蓝色
106     160~175     浅绿色
107     176~191     浅青色
108     192~207     浅红色
109     208~223     浅粉色
110     224~239     浅黄色
111     240~255     浅白色
112 
113 附录2(KEY NUMBER) 
114     VK_LBUTTON             鼠标左键                      0x01 
115     VK_RBUTTON             鼠标右键                      0x02 
116     VK_CANCEL              Ctrl + Break                  0x03 
117     VK_MBUTTON             鼠标中键                      0x04 
118 
119     VK_BACK                Backspace 键                   0x08 
120     VK_TAB                 Tab 键                        0x09 
121 
122     VK_RETURN              回车键                        0x0D 
123 
124 
125     VK_SHIFT               Shift 键                      0x10 
126     VK_CONTROL             Ctrl 键                       0x11 
127     VK_MENU                Alt 键                         0x12 
128     VK_PAUSE               Pause 键                      0x13 
129     VK_CAPITAL             Caps Lock 键                  0x14 
130 
131     VK_ESCAPE              Esc 键                        0x1B 
132 
133     VK_SPACE               空格键                       0x20 
134     VK_PRIOR               Page Up 键                    0x21 
135     VK_NEXT                Page Down 键                  0x22 
136     VK_END                 End 键                        0x23 
137     VK_HOME                Home 键                       0x24 
138     VK_LEFT                左箭头键                      0x25 
139     VK_UP                  上箭头键                      0x26 
140     VK_RIGHT               右箭头键                      0x27 
141     VK_DOWN                下箭头键                      0x28 
142     VK_SNAPSHOT            Print Screen 键               0x2C 
143     VK_Insert              Insert 键                     0x2D 
144     VK_Delete              Delete 键                     0x2E 
145 
146     '0' – '9'             数字 0 - 9                    0x30 - 0x39 
147     'A' – 'Z'             字母 A - Z                    0x41 - 0x5A 
148 
149     VK_LWIN                左WinKey(104键盘才有)         0x5B 
150     VK_RWIN                右WinKey(104键盘才有)         0x5C 
151     VK_APPS                AppsKey(104键盘才有)          0x5D 
152 
153     VK_NUMPAD0            小键盘 0 键                    0x60 
154     VK_NUMPAD1            小键盘 1 键                    0x61 
155     VK_NUMPAD2            小键盘 2 键                    0x62 
156     VK_NUMPAD3            小键盘 3 键                    0x63 
157     VK_NUMPAD4            小键盘 4 键                    0x64 
158     VK_NUMPAD5            小键盘 5 键                    0x65 
159     VK_NUMPAD6            小键盘 6 键                    0x66 
160     VK_NUMPAD7            小键盘 7 键                    0x67 
161     VK_NUMPAD8            小键盘 8 键                    0x68 
162     VK_NUMPAD9            小键盘 9 键                    0x69 
163 
164     VK_F1 - VK_F24        功能键F1 – F24                0x70 - 0x87 
165 
166     VK_NUMLOCK            Num Lock 键                    0x90 
167     VK_SCROLL             Scroll Lock 键                 0x91 
168 */

————————————————
版权声明:本文为CSDN博主「XSamsara」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_41357771/java/article/details/80032227

posted @ 2020-05-07 16:59  knbit  阅读(209)  评论(0)    收藏  举报