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

📄 helloworld.cpp

📁 c++从入门到精通
💻 CPP
字号:
#include <windows.h>
// windows.h头文件包含应用程序中所需的数据类型和数据结构的定义

LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ; //窗口函数声明

//以下的代码是初始化窗口类
int WINAPI WinMain ( HINSTANCE hInstance, 	//WinMain函数声明
HINSTANCE hPrevInstance,
PSTR szCmdLine,
int iCmdShow)
{
	static TCHAR szAppName[] = TEXT ("HelloWorld") ; //窗口类名
	static TCHAR lpszTitle[] = TEXT ("My First Windows Program") ; //窗口标题名

    HWND         hwnd ;
    MSG           msg ;
    WNDCLASS    wndclass ;
	
	wndclass.style = CS_HREDRAW | CS_VREDRAW ; //窗口类风格
    wndclass.lpfnWndProc = WndProc ;              //窗口处理函数为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 Windows NT!"), 
		szAppName, MB_ICONERROR) ;
		return 0 ;
     }
     hwnd = CreateWindow (szAppName,            // 窗口类名
	TEXT ("The Hello Program"),  // 窗口实例的标题名
	WS_OVERLAPPEDWINDOW, // 窗口的风格
                        CW_USEDEFAULT,      // 窗口的左上角x坐标为默认值
                        CW_USEDEFAULT,      // 左上角y轴坐标为默认值
                        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 ("helloworld.wav"), NULL,	
			SND_FILENAME | SND_ASYNC) ;
		return 0 ;
	case WM_PAINT:
		hdc = BeginPaint (hwnd, &ps) ;
		GetClientRect (hwnd, &rect) ;
		DrawText ( hdc, 
			TEXT("Hello World!"),
			12, &rect,
			DT_SINGLELINE | DT_CENTER | DT_VCENTER) ;
		EndPaint (hwnd, &ps) ;
		return 0 ;
    case WM_DESTROY:
		PostQuitMessage (0) ;
		//调用PostQuitMessage函数发出WM_QUIT消息
		return 0 ;
    }
	return DefWindowProc (hwnd, message, wParam, lParam) ;
}

⌨️ 快捷键说明

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