文字输出

This commit is contained in:
2025-11-06 00:27:52 +08:00
parent 6878d0d0de
commit 24cbbcccc4
2 changed files with 89 additions and 0 deletions
+88
View File
@@ -0,0 +1,88 @@
#include "c_WinGuiApp.h"
/* -------------------------------------------------------------------------------------------------------------- */
/* */
#define MAIN_WINDOW_CLASSNAME "EasyText"
/* -------------------------------------------------------------------------------------------------------------- */
/* */
#define DIRECTION_SIZE 100
static char Directions[DIRECTION_SIZE];
/* -------------------------------------------------------------------------------------------------------------- */
/* */
static BOOL MainWindow_OnCreate(HWND hwnd, LPCREATESTRUCT lpCreateStruct){
char* msg = "Try resizing this window.";
strcpy(Directions, msg);
return TRUE;
}
static void MainWindow_OnDestroy(HWND hwnd){
PostQuitMessage(0);
}
static void MainWindow_OnPaint(HWND hwnd){
PAINTSTRUCT PaintStruct;
RECT Rect;
HDC hdc = BeginPaint(hwnd, &PaintStruct);
SetBkMode(hdc, TRANSPARENT);
TextOut(hdc, 10, 10, Directions, lstrlen(Directions));
GetClientRect(hwnd, &Rect);
DrawText(hdc, "The middle of the road", -1, &Rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER);
EndPaint(hwnd, &PaintStruct);
}
/* -------------------------------------------------------------------------------------------------------------- */
/* */
c_WinGuiApp_EventBegin(WndProc)
c_WinGuiApp_OnEvent(WM_CREATE, MainWindow_OnCreate)
c_WinGuiApp_OnEvent(WM_DESTROY, MainWindow_OnDestroy)
c_WinGuiApp_OnEvent(WM_PAINT, MainWindow_OnPaint)
c_WinGuiApp_EventEnd
/* -------------------------------------------------------------------------------------------------------------- */
/* */
static bool Register(HINSTANCE hInstance){
WNDCLASS WndClass;
WndClass.lpszClassName = MAIN_WINDOW_CLASSNAME;
WndClass.style = CS_HREDRAW | CS_VREDRAW;
WndClass.cbWndExtra = 0;
WndClass.cbClsExtra = 0;
WndClass.hInstance = hInstance;
WndClass.lpfnWndProc = WndProc;
WndClass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
WndClass.hCursor = LoadCursor(NULL, IDC_ARROW);
WndClass.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
WndClass.lpszMenuName = NULL;
return (RegisterClass(&WndClass)!=0);
}
static HWND Create(HINSTANCE hInstance, int nCmdShow){
HWND hWindow = CreateWindowEx(0, MAIN_WINDOW_CLASSNAME, MAIN_WINDOW_CLASSNAME,
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, CW_USEDEFAULT,
CW_USEDEFAULT, CW_USEDEFAULT,
NULL, NULL, hInstance, NULL);
if(!hWindow) return NULL;
c_WinGuiApp.hMainWindow = hWindow;
ShowWindow(hWindow, nCmdShow);
UpdateWindow(hWindow);
return hWindow;
}
/* -------------------------------------------------------------------------------------------------------------- */
/* */
c_WinGuiApp_Main(Register, Create)
+1
View File
@@ -73,6 +73,7 @@ extern c_WinGuiApp_t c_WinGuiApp;
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdParam, int nCmdShow){ \
MSG Msg; \
if(!hPrevInstance){ \
c_WinGuiApp.hInstance = hInstance; \
if(!fRegister(hInstance)){ \
return FALSE; \
} \