创建C++的 Win32 应用程序

创建新的 Win32 项目

  1. “文件”菜单上,单击“新建”,然后单击“项目...”

  2. “项目类型”窗格中,选择“Visual C++”节点中的“Win32”,然后在“模板”窗格中选择“Win32 项目”

    键入项目的名称,如 win32app。您可以接受默认位置、键入一个位置或者导航到要保存项目的目录。

  3. “Win32 应用程序向导”中,选择“下一步”

  4. “Win32 应用程序向导”中,在“应用程序类型”下选择“Windows 应用程序”。在“附加选项”下选择“空项目”。原样保留剩余的选项。单击“完成”创建项目。

  5. “项目”菜单中选择“添加新项...”,将 C++ 文件添加到项目中。在“添加新项”对话框中选择“C++ 文件(.cpp)”。为文件键入一个名称,如WinMain.cpp,并单击“添加”

示例

说明

完成所有步骤之后,代码应该与下面的内容类似: 若要生成应用程序,请从“生成”菜单选择“生成解决方案”。如果应用程序编译时没有任何错误,您可以通过按 F5 来运行该应用程序。

代码

#include <windows.h>
#include "resource.h" //引入资源文件
#include "stdio.h"

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

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
{
	//设计窗口类
	WNDCLASS wndclass;
	wndclass.cbClsExtra = 0;
	wndclass.cbWndExtra = 0;
	wndclass.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH);//设置窗口背景色为黑色
	wndclass.hCursor =LoadCursor(NULL, IDC_ARROW);
	wndclass.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_ICON1));//IDI_ICON1是ICON资源的ID号
	wndclass.hInstance = hInstance;
	wndclass.lpfnWndProc = WndProc;
	wndclass.lpszClassName = L"Hello C++!";
	wndclass.lpszMenuName = NULL;
	wndclass.style = CS_HREDRAW | CS_VREDRAW;
	//注册窗口类
	if(!RegisterClass(&wndclass))
	{
		MessageBox(0, L"注册窗口类失败,请重新注册!", L"提示", MB_OK | MB_ICONERROR);
		return -1;
	}
	//创建窗口
	HWND hWnd;
	hWnd = CreateWindow(wndclass.lpszClassName, L"Hello C++!",
		WS_OVERLAPPEDWINDOW,
		CW_USEDEFAULT, CW_USEDEFAULT,
		CW_USEDEFAULT, CW_USEDEFAULT,
		0, 0, hInstance, NULL);
	//显示窗口
	ShowWindow(hWnd, nShowCmd);
	//更新窗口
	UpdateWindow(hWnd);
	//消息循环
	MSG * msg;
	msg = new MSG();
	while(GetMessage(msg, NULL, 0, 0))
	{
		TranslateMessage(msg);//消息转换
		DispatchMessage(msg);//消息投递
	}
	return msg ->wParam;
}

LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	HDC hdc;
	switch(uMsg)
	{
	case WM_CHAR:
		char buffer [20];
		sprintf(buffer, "键值:%d", wParam);
		MessageBoxA(hWnd, buffer, "按键", MB_OK | MB_ICONINFORMATION);
		return 0;
	case WM_PAINT:
		PAINTSTRUCT ps;
		RECT rect;
		hdc = BeginPaint(hWnd, &ps);
		GetClientRect(hWnd, &rect);//注意GetClientRect和GetWindowRect的区别 
		SetBkColor(hdc, RGB(0,0,0));//设置文字的矩形区域背景为黑色
		SetTextColor(hdc, RGB(255,255,255));//设置文字颜色为白色
		DrawText(hdc, L"Hello World!", -1, &rect, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
		EndPaint(hWnd, &ps);
		return 0;
	case WM_LBUTTONDOWN:
		POINTS pt;
		pt = MAKEPOINTS(lParam);
		hdc = GetDC(hWnd);
		SetBkColor(hdc, RGB(0,0,0));//设置文字的矩形区域背景为黑色
		SetTextColor(hdc, RGB(255,0,0));//设置文字颜色为红色
		TextOut(hdc, pt.x, pt.y, L"按下鼠标左键!", wcslen(L"按下鼠标左键!"));
		ReleaseDC(hWnd, hdc);
		return 0;
	case WM_CLOSE:
		if(IDOK == MessageBox(hWnd, L"确认退出程序吗?", L"提示", MB_OKCANCEL | MB_ICONQUESTION))
		{
			DestroyWindow(hWnd);
		}
		return 0;
	case WM_DESTROY:
		PostQuitMessage(0);
		return 0;
	default:
		return DefWindowProc(hWnd, uMsg, wParam, lParam);
	}
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Win32程序是指使用Windows操作系统提供的API编写的应用程序。SDI(Single Document Interface)是一种界面设计模式,用于窗口应用程序中只打开一个文档的情况。 在编写Win32程序的过程中,首先需要使用C语言进行编程。C语言是一种面向过程的编程语言,它的优点是执行效率高、灵活性好,适合编写底层的系统程序。 在实现SDI模式的程序中,通常会包含一个主窗口(MainFrame)和一个文档窗口(DocumentFrame)。主窗口是整个应用程序的入口,用于显示菜单、工具栏和状态栏等用户界面元素,并负责响应用户的操作。文档窗口用于显示编辑的文档内容,并提供编辑操作,例如保存文档、复制粘贴等。 在编写程序时,需要处理窗口消息,例如鼠标点击、键盘输入等。可以使用Windows API提供的函数来处理这些消息,并根据具体的处理逻辑来实现相应的功能。例如,当用户点击保存按钮时,可以通过SendMessage函数向程序发送保存消息,并在消息处理函数中实现相应的保存操作。 此外,还可以使用Windows API提供的其他功能来增强应用程序的功能,例如创建对话框、绘制图形等。这些功能都可以根据具体的需求来调用相应的函数,从而实现相应的功能。 综上所述,编写Win32程序SDI模式是一个需要深入了解Windows API的过程,通过使用C语言和相关函数,可以实现一个具有图形界面和编辑功能的应用程序

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值