📄 winmain.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 + -