📄 main.cpp
字号:
#include <windows.h>
#include "resource.h"
#define MYWIDTH 50
TCHAR szAppName[] = TEXT("RecogniseNumber");
TCHAR szTitle[] = TEXT("Title"); //标题窗口类名
TCHAR szTable[] = TEXT("StateTable");
TCHAR szRecog[] = TEXT("Recognise");
void RegisterWindowClass();
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
LRESULT CALLBACK TitleWindowProc(HWND,UINT,WPARAM,LPARAM);
LRESULT CALLBACK StateTableWndProc(HWND,UINT,WPARAM,LPARAM);
LRESULT CALLBACK RecogniseWndProc(HWND,UINT,WPARAM,LPARAM);
int WINAPI WinMain(HINSTANCE hInst,HINSTANCE hPrev,LPSTR lpCmdLine,int nShowCmd)
{
HWND hwnd;
MSG msg;
DWORD style;
RegisterWindowClass();
style = WS_OVERLAPPEDWINDOW;
style &= (~WS_MAXIMIZEBOX);
style &= (~WS_SIZEBOX);
style |= WS_CLIPCHILDREN;
hwnd = CreateWindow(szAppName,TEXT("有限状态自动机"),style,
50,50,720,480,
NULL,NULL,hInst,NULL);
ShowWindow(hwnd,SW_SHOW);
UpdateWindow(hwnd);
while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return 0;
}
LRESULT CALLBACK WndProc(HWND hwnd,UINT msg,WPARAM wParam,LPARAM lParam)
{
RECT rect;
POINT pos;
DWORD style;
long x,y,w,h;
HINSTANCE hInst;
static HWND hRecog;
switch(msg)
{
case WM_CREATE:
hInst = GetModuleHandle(NULL);
style = WS_CHILD | WS_VISIBLE;//| WS_CLIPCHILDREN
x = y = 0; w = 14 * MYWIDTH; h = 2 * MYWIDTH;
CreateWindow(szTitle,NULL,style,
x,y,w,h,
hwnd,(HMENU)1,hInst,NULL);
x = 0; y = 2 * MYWIDTH;
w = 8 * MYWIDTH; h = 8 * MYWIDTH;
CreateWindow(szTable,NULL,style,
x,y,w,h,
hwnd,(HMENU)2,hInst,NULL);
x = 8 * MYWIDTH; y = 2 * MYWIDTH;
w = 6 * MYWIDTH; h = 6 * MYWIDTH;
hRecog = CreateWindow(szRecog,NULL,style,
x,y,w,h,
hwnd,(HMENU)3,hInst,NULL);
return 0;
case WM_SETCURSOR:
GetClientRect(hwnd,&rect);
GetCursorPos(&pos);
ScreenToClient(hwnd,&pos);
if (PtInRect(&rect,pos))
{
SetCursor(LoadCursor(NULL,IDC_SIZEALL));
return TRUE;
}
break;
case WM_NCHITTEST:
GetClientRect(hwnd,&rect);
GetCursorPos(&pos);
ScreenToClient(hwnd,&pos);
if (PtInRect(&rect,pos)) return HTCAPTION;
break;
return 0;
case WM_SETFOCUS:
SetFocus(hRecog);
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return DefWindowProc(hwnd,msg,wParam,lParam);
}
//注册各个窗口类
void RegisterWindowClass()
{
WNDCLASS wndclass;
HINSTANCE hInst;
hInst = GetModuleHandle(NULL);
//注册主窗口类
wndclass.cbClsExtra = 0;
wndclass.cbWndExtra = 0;
wndclass.hbrBackground = (HBRUSH)(COLOR_WINDOWTEXT + 1);
wndclass.hCursor = LoadCursor(NULL,IDC_SIZEALL);
wndclass.hIcon = LoadIcon(hInst,MAKEINTRESOURCE(IDI_ICON1));
wndclass.hInstance = hInst;
wndclass.lpfnWndProc = WndProc;
wndclass.lpszClassName = szAppName;
wndclass.lpszMenuName = NULL;
wndclass.style = CS_VREDRAW | CS_HREDRAW;
RegisterClass(&wndclass);
//注册标题窗口类
wndclass.lpfnWndProc = TitleWindowProc;
wndclass.lpszClassName = szTitle;
RegisterClass(&wndclass);
//注册状态转换表窗口类
wndclass.lpfnWndProc = StateTableWndProc;
wndclass.lpszClassName = szTable;
RegisterClass(&wndclass);
// 注册识别窗口类
wndclass.lpfnWndProc = RecogniseWndProc;
wndclass.lpszClassName = szRecog;
RegisterClass(&wndclass);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -