hellowin.c

来自「windows程序设计实例」· C语言 代码 · 共 83 行

C
83
字号
#include <windows.h>

LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,
				   PSTR szCmdLine,int iCmdShow)
{
	static TCHAR szAppName[]=TEXT("HelloWin");
	HWND hwnd;
	MSG msg;
	WNDCLASS wndclass;
	wndclass.style	       =	CS_HREDRAW  |   CS_VREDRAW;
	wndclass.lpfnWndProc   =	WndProc;
	wndclass.cbClsExtra	   =	0;
	wndclass.cbWndExtra    =	0;
	wndclass.hInstance	   =	hInstance;
	wndclass.hIcon         =	LoadIcon(NULL,IDI_APPLICATION);
	wndclass.hCursor	   =	LoadCursor(NULL,IDC_ARROW);
	wndclass.hbrBackground =	(HBRUSH)GetStockObject(WHITE_BRUSH);
	wndclass.lpszMenuName  =	NULL;
	wndclass.lpszClassName =	szAppName;
	
	if(!RegisterClass(&wndclass))
	{
		MessageBox(NULL,TEXT("This program requires Window NT!"),
			szAppName,MB_ICONERROR);
		return 0;
	}

	hwnd  =  CreateWindow(szAppName,
						  TEXT("The Hello Program"),
						  WS_OVERLAPPEDWINDOW,
						  CW_USEDEFAULT,
						  CW_USEDEFAULT,
						  CW_USEDEFAULT,
						  CW_USEDEFAULT,
						  NULL,
						  NULL,
						  hInstance,
						  NULL);

	ShowWindow(hwnd,iCmdShow);
	UpdateWindow(hwnd);

	while(GetMessage(&msg,NULL,0,0))
	{
		TranslateMessage(&msg);
		DispatchMessage(&msg);
	}

	return msg.wParam;
}

LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
{
	HDC hdc;
	PAINTSTRUCT ps;
	RECT rect;

	switch(message)
	{
	case WM_CREATE:
		PlaySound(TEXT("hellowin.wav"),NULL,SND_FILENAME|SND_ASYNC);
		return 0;

	case WM_PAINT:
		hdc = BeginPaint(hwnd, &ps);

		GetClientRect(hwnd,&rect);

		DrawText(hdc,TEXT("Hello,Windows 98!"),-1,
			              &rect,DT_SINGLELINE|DT_CENTER|DT_VCENTER);

		EndPaint(hwnd,&ps);
		return 0;

	case WM_DESTROY:
		PostQuitMessage(0);
		return 0;
	}

	return DefWindowProc(hwnd,message,wParam,lParam);
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?