Gracekite's Homepage

Back

设置全屏#

void full_screen()
{   
    HWND hwnd = GetForegroundWindow();
    int cx = GetSystemMetrics(SM_CXSCREEN);            /* 屏幕宽度 像素 */
    int cy = GetSystemMetrics(SM_CYSCREEN);            /* 屏幕高度 像素 */

    LONG l_WinStyle = GetWindowLong(hwnd,GWL_STYLE);   /* 获取窗口信息 */
    /* 设置窗口信息 最大化 取消标题栏及边框 */
    SetWindowLong(hwnd,GWL_STYLE,(l_WinStyle | WS_POPUP | WS_MAXIMIZE) & ~WS_CAPTION & ~WS_THICKFRAME & ~WS_BORDER);

    SetWindowPos(hwnd, HWND_TOP, 0, 0, cx, cy, 0);
}
cpp

获取字体大小#

获取窗口大小(单位:像素)#

COORD get_screen_size()
{
    HWND hwnd = GetForegroundWindow();
    COORD size;
    size.cx = GetSystemMetrics(SM_CXSCREEN);            /* 屏幕宽度 */
    size.cy = GetSystemMetrics(SM_CYSCREEN);          /* 屏幕高度 */
    return size;
}
cpp

获取窗口大小(单位:字符)(依赖于get_font_size())#

COORD get_screen_size()
{
    HWND hwnd = GetForegroundWindow();
    HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);   /* 标准输出缓冲区句柄 */
    int cx = GetSystemMetrics(SM_CXSCREEN);            /* 屏幕宽度 */
    int cy = GetSystemMetrics(SM_CYSCREEN);            /* 屏幕高度 */

    COORD size = get_font_size();
    char cmd[32] = { 0 };
    
    size.X=cx/size.X,
    size.Y=cy/size.Y;
    return size;
}
cpp

设置颜色#

void SetColor(int fore=7,int back=0)
{
	unsigned char m_color = fore;
	m_color += (back << 4);
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), m_color);
	return;
}
cpp

隐藏光标#

void HideCursor(){
    CONSOLE_CURSOR_INFO cursor_info={1,0};
    SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE),&cursor_info);
}
cpp

光标移动#

void GoToxy(int x,int y){
    COORD coord;
    coord.X=y;//这里调换了顺序,否则就是将输出指针移到y行,x列
    coord.Y=x;
    HANDLE a=GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleCursorPosition(a,coord);
}
cpp

缓慢输出#

void slowout(char *p){
    while(1){
        if(*p!=0) printf("%c",*p++);
        else break;
        Sleep(20);
    }
    Sleep(500);
}
cpp

键盘、鼠标检测#

初始化#

#define KEY_DOWN(VK_NONAME) ((GetAsyncKeyState(VK_NONAME) & 0x8000) ? 1:0)
cpp

键符对照#

检测鼠标按下#

检测鼠标位置#

POINT p;
GetCursorPos(&p);
printf("(%d,%d)\n",p.x,p.y);
cpp

多线程#

#include<iostream>
#include<thread>
using namespace std;
int main(){
    thread th1(...);//第一个参数为函数名,第二个参数为该函数的第一个参数,如果该函数接收多个参数就依次写在后面。此时线程开始执行。
    thread th2(...);//第一个参数为函数名,第二个参数为该函数的第一个参数,如果该函数接收多个参数就依次写在后面。此时线程开始执行。
}
cpp
CMD操作
https://betteroier.github.io/blog/cmd%E6%93%8D%E4%BD%9C
Author Yuxuan Zheng
Published at August 5, 2022