89 lines
2.8 KiB
C
89 lines
2.8 KiB
C
#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)
|
||
|
|
|
||
|
|
|