?? 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 + -