首页 > 其他分享 >《Win32篇》新建项目vs2008

《Win32篇》新建项目vs2008

时间:2023-07-27 12:55:33浏览次数:51  
标签:return vs2008 新建 hWnd Win32 -- msg wcex

VS2008新建项目

参考链接:https://blog.csdn.net/candyliuxj/article/details/7350053

(1)新建Win32项目
image

点击上图的确定后,出现Win32应用程序向导,点击下一步,出现下图界面,选择附加选项中的空项目,点击完成,新建项目完成。
image

(2)添加预编译头
从解决方案资源管理器中可看到,新建的Win32项目中没有任何文件,如下图:
image

这就需要我们手动添加预编译头。
首先新建头文件stdafx.h,并在此文件中添加如下内容:

#pragma once

#include<windows.h>
#include <tchar.h>

然后新建源文件stdafx.cpp,并在此文件中添加如下内容:

#include "stdafx.h"

然后右击stdafx.cpp,选择属性,在弹出的属性页中,选择配置属性->C/C++->预编译头->创建/使用预编译头,选择【创建预编译头(/Yc)】,如下图:
image

点击应用,确定按钮。

然后右击项目,选择属性,在弹出的属性页中,选择配置属性->C/C++->预编译头->创建/使用预编译头,选择【使用预编译头(/Yu)】,如下图:
image

点击应用,确定按钮。
(3)测试代码

新建test.cpp文件,添加如下代码:

// test.cpp 应用程序入口文件

#include "stdafx.h"

int APIENTRY _tWinMain(HINSTANCE hInstance,  
					  HINSTANCE hPrevInstance,   
					  LPTSTR lpCmdLine,
					  int nCmdShow)
{
	// 指明不产生这些参数不适用的警告
	UNREFERENCED_PARAMETER(hPrevInstance);
	UNREFERENCED_PARAMETER(lpCmdLine);
	UNREFERENCED_PARAMETER(hInstance);
	UNREFERENCED_PARAMETER(nCmdShow);

	// 获取桌面的句柄
	HWND hWnd = GetDesktopWindow();

	// 显示一行消息
	::MessageBox(hWnd, _T("第一个应用程序"), _T("例子"), MB_OK);

	return 0;
}

然后,编译运行,结果如下:
image

vs2008新建项目2

参考链接:https://blog.csdn.net/sanqima/article/details/36475281

1)新建一个解决方案Solu4,在Solu4添加一个win32应用程序,命名为“dian43”--》next--》勾选“空工程”。如下:
image

image

2)点击“dian43”-->源文件--》右击--》选择“添加”/“新建项”--》代码/C++-->命名为:di

3)在di.cpp中添加如下代码:

#include <Windows.h>
#include <tchar.h>

//声明回调函数
LRESULT CALLBACK WndProc(HWND hWnd,UINT msg,WPARAM wParam,LPARAM lParam);

//窗口类名和窗口函数
const TCHAR szWindowClass[] = L"第一个窗口";
const TCHAR szWindowTitle[] = L"主窗口标题";

//WinMain函数,入口点
int WINAPI _tWinMain(HINSTANCE hInstance,HINSTANCE hPreInstance,
					 LPTSTR lpCmdLine,int nCmdSHow)
{
	//注册窗口类
	WNDCLASSEX wcex={0};
	wcex.cbSize=sizeof(WNDCLASSEX);
	wcex.style=CS_HREDRAW|CS_VREDRAW;
	wcex.lpfnWndProc=(WNDPROC)WndProc;
	wcex.hInstance=hInstance;
	wcex.hIcon=LoadIcon(NULL,IDI_APPLICATION);

	wcex.hCursor=LoadCursor(NULL,IDC_ARROW);
	wcex.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
	wcex.lpszClassName=szWindowClass;
	RegisterClassEx(&wcex);

	//创建窗口
	HWND hWnd = CreateWindow(
		szWindowClass,
		szWindowTitle,
		WS_OVERLAPPEDWINDOW,
		100,200,500,500,
		HWND_DESKTOP,
		NULL,
		hInstance,
		NULL
		);
	if(!hWnd) return FALSE;

	//显示并更新窗口
	ShowWindow(hWnd,nCmdSHow);
	UpdateWindow(hWnd);

	//进入消息循环
	MSG msg;

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

//窗口函数,用于消息处理
LRESULT CALLBACK WndProc(HWND hWnd,UINT msg,WPARAM wParam,LPARAM lParam){
	int nSel=0;
	switch(msg){
		case WM_PAINT:
			{
				TCHAR* str=L"Hello World";
				PAINTSTRUCT ps;
				HDC hdc=BeginPaint(hWnd,&ps);
				RECT r;
				GetClientRect(hWnd,&r);//获取客户区的矩形框
				DrawText(hdc,str,-1,&r,DT_SINGLELINE|DT_CENTER|DT_VCENTER);
				EndPaint(hWnd,&ps);
				return 0;
			}
		case WM_CLOSE:
			nSel=MessageBox(hWnd,L"你真的要退出吗?",szWindowTitle,MB_YESNO|MB_ICONQUESTION);
			if(nSel==IDYES) DestroyWindow(hWnd);
			return 0;
		case WM_DESTROY:
			PostQuitMessage(0);
			return 0;
		default:
			return DefWindowProc(hWnd,msg,wParam,lParam);
	}
}

标签:return,vs2008,新建,hWnd,Win32,--,msg,wcex
From: https://www.cnblogs.com/fusio/p/17584664.html

相关文章

  • 《Win32篇》新建项目vs2015
    vs2015新建项目参考链接:https://blog.csdn.net/wowocpp/article/details/79260945创建一个最简单的win32应用程序使用的是vs2013中文版首先创建一个win32应用程序工程也可以使用快捷键Ctrl+Shift+N创建的工程名字是HelloApp下一步建立一个空项目创建后的工程如......
  • 《Win32篇》空项目、Win32项目、MFC项目、Win32控制台的区别
    空项目、Win32项目、MFC项目、Win32控制台的区别参考链接:https://www.cnblogs.com/MCSFX/p/13267287.html参考链接:https://www.zhihu.com/question/20524989/answer/17575697空项目控制台控制台没有窗口,控制台与有窗口的(例如:win32、mfc)交互方式不同,前者是CML(命令模式),后者是G......
  • Windows——新建txt文本快捷键
    修改注册表,步骤:1.win+R,输入regedit,回车2.找到如下路径3.修改该注册表4.右键+W+T,即可创建TXT文档......
  • python如何新建array
    Python如何新建array在Python中,可以使用array模块来创建和操作数组。array模块提供了一种高效的存储和操作数值数据的方式,它可以在内存中创建一个连续的数组,并且支持各种数值类型,如整数、浮点数等。问题描述假设我们面临的问题是需要存储一系列数字,并对这些数字进行一些计算和操......
  • 报from PyQt5.QtWidgets import * ImportError: DLL load failed: %1 不是有效的 Win3
    导入时,报fromPyQt5.QtWidgetsimport*ImportError:DLLloadfailed:%1不是有效的Win32application!查了很多资料,发现原来PyQt5安装包也是区分电脑位数的,我的电脑是32位的,装的PyQt5确是64位的,由于我这边用pipinstallPyQt5一直报timeout错误,所以我采用的是去官网直接下......
  • android studio 新建文件夹
    AndroidStudio新建文件夹在Android开发过程中,我们经常需要将代码文件和资源文件组织到不同的文件夹中,以便更好地管理和维护项目。本文将介绍如何在AndroidStudio中新建文件夹,并提供相应的代码示例。方法一:通过资源管理器新建文件夹首先,我们可以通过资源管理器在项目中新建文件......
  • Visual Studio新建项目配置好opencv环境,下次打开这个项目后属性管理器显示未加载visua
    配置opencv环境,可参考这篇博客:(82条消息)opencv之visualstudio开发环境配置(属性管理器+环境变量一劳永逸方便开发的配置方式)_opencv官网下载_仙魁XAN的博客-CSDN博客如出现打开这个项目后属性管理器显示未加载visualC++项目,可参考如下方法:1.解决方法:文件→打开→项目/......
  • python win32com 写入excel
    如何使用Python的win32com库写入Excel作为一名经验丰富的开发者,我可以教会你如何使用Python的win32com库来实现在Excel中写入数据的功能。下面是整个流程的步骤表格:步骤描述1导入所需的库2创建Excel应用程序对象3打开或创建Excel工作簿4选择或创建工作表......
  • python win32com makepy.py
    使用win32com库在Python中操作COM对象COM(ComponentObjectModel)是一种面向组件的软件架构模型,用于实现组件之间的通信和交互。在Windows系统中,许多应用程序和服务都是以COM对象的形式提供的。通过COM,我们可以在Python中与这些应用程序和服务进行交互。在Python中,我们可以使用win......
  • redis 新建账号
    Redis新建账号流程在使用Redis进行新建账号的操作前,首先需要确保已经安装并启动了Redis服务器。接下来,我们将按照以下步骤来实现新建账号的功能:步骤描述1连接Redis服务器2检查账号是否已存在3生成随机的账号ID4创建账号并设置初始信息5返回新......