⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test.c

📁 可能有用,是关于c++的是因为要下个软件所以随便传了一个,抱歉了.刚学c++还不会弄什么,以后一定一定传好的东西.
💻 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 + -