📄 test.c
字号:
#include <windows.h>
#include "gdi.h"
#include "canvas.h"
#include "box.h"
#define WIDTH 640
#define HEIGHT 480
struct gdi g_gdi;
struct canvas *g_canvas;
HINSTANCE hInst; // current instance
ATOM MyRegisterClass();
BOOL InitInstance();
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
int main()
{
int i;
MSG msg;
struct box b;
hInst = GetModuleHandle(0); // Store instance handle in our global variable
MyRegisterClass();
if (!InitInstance ()) {
return FALSE;
}
b.kx=0;
b.ky=0;
b.width=100;
b.height=100;
b.color=0xffff;
b.dirty=DIRTY;
// Main message loop:
i=0;
for (;;) {
if(PeekMessage(&msg,NULL,0,0,PM_NOREMOVE)) {
if(!GetMessage(&msg,NULL,0,0)) {
break;
}
TranslateMessage(&msg);
DispatchMessage(&msg);
}
b.dirty=DIRTY;
box_draw(g_canvas,&b,i,i);
canvas_update(g_canvas);
++i;
Sleep(5);
}
gdi_release(&g_gdi);
canvas_release(g_canvas);
return msg.wParam;
}
ATOM MyRegisterClass()
{
WNDCLASS wc;
wc.style= CS_HREDRAW|CS_VREDRAW;
wc.lpfnWndProc= (WNDPROC)WndProc;
wc.cbClsExtra= 0;
wc.cbWndExtra= 0;
wc.hInstance= hInst;
wc.hIcon= NULL;
wc.hCursor= LoadCursor(NULL, IDC_ARROW);
wc.hbrBackground= NULL;
wc.lpszMenuName= NULL;
wc.lpszClassName= "TEST";
return RegisterClass(&wc);
}
BOOL InitInstance()
{
HWND hWnd;
DWORD style=WS_OVERLAPPEDWINDOW&~WS_SIZEBOX&~WS_MAXIMIZEBOX;
RECT rect={0,0,WIDTH,HEIGHT};
AdjustWindowRect(&rect,style,FALSE);
hWnd=CreateWindow("TEST","test",
style, CW_USEDEFAULT,0,
rect.right-rect.left,rect.bottom-rect.top,
0,0,hInst,0);
if (!hWnd)
{
return FALSE;
}
gdi_create(&g_gdi,hWnd,WIDTH,HEIGHT);
g_canvas=canvas_create(g_gdi.width,g_gdi.height,g_gdi.buffer,g_gdi.pitch,g_gdi.flip,g_gdi.object);
ShowWindow(hWnd, SW_SHOWDEFAULT);
UpdateWindow(hWnd);
return TRUE;
}
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case WM_PAINT:
canvas_redraw(g_canvas);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -