⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 winmain.cpp

📁 编程 有关键盘的使用问题 可供初学者参考使用
💻 CPP
字号:
#include <windows.h>


#define FLASE 0
#define TRUE 1

LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
BOOL InitWindowsClass(HINSTANCE hInstance);
BOOL InitWindowsClass(HINSTANCE hInstance,int nCmdShow);

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
{ 
	MSG Message;
	if(!InitWindowsClass(hInstance))
		return FLASE;
	if(!InitWindowsClass(hInstance,nCmdShow))
		return FLASE;
	while(GetMessage(&Message,0,0,0))
	{
		TranslateMessage(&Message);
		DispatchMessage(&Message);
	}
	return Message.wParam;
}

LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,UINT wParam,LONG lParam)
{
	#define BufSize 15
	static char cCharBuf[BufSize];
	static int nNumChar = 0;
	static int nArrayPos = 0;
	static int nLnHeight;
	static int nCharWidth;
	int x;
	HDC hDC;
//	TEXTMETRIC tm;
	PAINTSTRUCT PtStr;
	switch(iMessage)
	{
	case WM_CHAR:
		{
			if(wParam == VK_BACK)
			{
				if(nArrayPos == 0)
					MessageBox(hWnd,"文本的起始位置,不能再回退",NULL,MB_OK);
				else 
				{
					nArrayPos = nArrayPos - 1;
					nNumChar = nNumChar - 1;
					InvalidateRect(hWnd,NULL,TRUE);
				}
				break;
			}

			if(wParam == VK_ESCAPE)
			{
				MessageBox(hWnd,"你现在不能按ESC键,请进行其他操作",NULL,MB_OK);
				break;
			}
			if(nNumChar >= BufSize)
			{
				MessageBox(hWnd,"缓存区已满,请进行其他操作",NULL,MB_OK);
				break;
			
			}
			for(x = nNumChar;x > nArrayPos;x = x - 1)
				cCharBuf[x] = cCharBuf[x - 1];
			nArrayPos = nArrayPos + 1;
			nNumChar = nNumChar + 1;
			InvalidateRect(hWnd,NULL,TRUE);
		}
		break;
	
	case WM_PAINT:
		hDC = BeginPaint(hWnd,&PtStr);
		SetTextColor(hDC,RGB(0,255,0));
		TextOut(hDC,15,10,"有花堪折直须折,莫到无花空折枝",30);
		EndPaint(hWnd,&PtStr);


	
		break;
	case WM_DESTROY:
		PostQuitMessage(0);
		break;
	default:
		return(DefWindowProc(hWnd,iMessage,wParam,lParam));
	}
	return 0;
}

BOOL InitWindowsClass(HINSTANCE hInstance,int nCmdShow)
{
	HWND hWnd;
	hWnd = CreateWindow("WinKeyBoard",
						"键盘操作",
						WS_OVERLAPPEDWINDOW,
						CW_USEDEFAULT,
						0,
						CW_USEDEFAULT,
						0,
						NULL,
						NULL,
						hInstance,
						NULL);
	if(!hWnd)
		return FALSE;
	ShowWindow(hWnd,nCmdShow);
	UpdateWindow(hWnd);
	return TRUE;

}

BOOL InitWindowsClass(HINSTANCE hInstance)
{
	WNDCLASS WndClass;
	WndClass.cbClsExtra = 0;
	WndClass.cbWndExtra = 0;
	WndClass.hbrBackground = (HBRUSH)(GetStockObject(WHITE_BRUSH));
	WndClass.hCursor = LoadCursor(NULL,IDC_ARROW);
	WndClass.hIcon = LoadIcon(NULL,"END");
	WndClass.hInstance = hInstance;
	WndClass.lpfnWndProc = WndProc;
	WndClass.lpszClassName = "WinKeyBoard";
	WndClass.lpszMenuName = NULL;
	WndClass.style = CS_HREDRAW|CS_VREDRAW;
	return RegisterClass(&WndClass);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -