`

最简单的Windows程序源代码

    博客分类:
  • VC
阅读更多

#include <Windows.h>
#include <stdio.h>

LRESULT CALLBACK WinProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
BOOL RegisterWndClass(HINSTANCE hIntance, const char* szClass);

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdLine, int nCmdShow)
{
	HWND hwnd = NULL;
	static char szAppName[] = "WinTest";

	if (!RegisterWndClass(hInstance, szAppName))
	{
        MessageBox(NULL, "注册窗口失败!", "创建窗口", MB_OK);
		return 0;
	}


	hwnd = CreateWindow(szAppName, "测试窗口", WS_OVERLAPPEDWINDOW, 0, 0, CW_USEDEFAULT, CW_USEDEFAULT, NULL,
		NULL, hInstance, NULL);

	if (NULL == hwnd)
	{
		MessageBox(NULL, "创建窗口失败", "创建窗口", MB_OK);
		return 0;
	}

	ShowWindow(hwnd, SW_SHOWNORMAL);
	UpdateWindow(hwnd);

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

	return int(msg.wParam);
}

BOOL RegisterWndClass(HINSTANCE hIntance, const char* szClass)
{
	WNDCLASS wndClass;

	wndClass.cbClsExtra		= 0;
	wndClass.cbWndExtra		= 0;
	wndClass.hbrBackground	= (HBRUSH)GetStockObject(BLACK_BRUSH);
	wndClass.hCursor		= LoadCursor(NULL, IDC_CROSS);
	wndClass.hIcon			= LoadIcon(NULL, IDI_ERROR);
	wndClass.hInstance		= hIntance;
	wndClass.lpfnWndProc	= WinProc;
	wndClass.lpszClassName	= szClass;
	wndClass.lpszMenuName	= NULL;
	wndClass.style			= CS_HREDRAW | CS_VREDRAW;

	return ::RegisterClass(&wndClass);
}

LRESULT CALLBACK WinProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	switch (uMsg)
	{
	case WM_CHAR:
		{
			char szChar[MAX_PATH] = {0};
			sprintf(szChar, "您刚刚输入的字符ASSIC: %d", wParam);
			MessageBox(hwnd, szChar, "输入字符", MB_OK);
		}
		
		break;

	case WM_LBUTTONDOWN:
		{
			MessageBox(hwnd, "您按下了左键", "鼠标点击", MB_OK);
			HDC hdc = GetDC(hwnd);
			char *szText = "鼠标点击事件记录";
			TextOut(hdc, 0, 50, szText, strlen(szText));
			ReleaseDC(hwnd, hdc);
		}		
		
		break;

	case WM_PAINT:
		{
				PAINTSTRUCT ps;
			HDC hdc = BeginPaint(hwnd, &ps);
			char* szText = "我们的第一个Windows窗口";
			TextOut(hdc, 0, 0, szText, strlen(szText));
			EndPaint(hwnd, &ps);
		}
		break;

	case WM_CLOSE:
		if (IDYES == MessageBox(hwnd, "退出程序?", "退出", MB_YESNO))
		{
			DestroyWindow(hwnd);
		}

		break;

	case WM_DESTROY:
		PostQuitMessage(0);
		break;

	default:
		return DefWindowProc(hwnd, uMsg, wParam, lParam);
	}

	return 0;
}
 
分享到:
评论

相关推荐

    C# 简单的 抽奖 程序 源代码

    在本项目中,我们主要探讨的是一个基于C#编写的简单抽奖程序,它适用于各种活动或竞赛中的随机抽签...通过学习和理解这个源代码,开发者不仅可以掌握C#的基础知识,还能了解到如何将这些知识应用于实际的项目开发中。

    MFC Windows程序设计(第2版修订版)--源代码

     《mfc windows程序设计(第2版)》是对其极为经典的第1版的全面更新,本书不仅扩展了已被认为是权威的关于microsoft用于windows api的功能强大的c++类库的阐述,还新增了有关com、ole和activex的内容。本书的作者...

    windows 程序设计第五版源代码光盘

    有经验的Windows程序员都知道,如果在工作中遇到了技术难题。最好的解决办法就是去查Petzold的书。是的,《Windows程序设计》内容博大精深。阐述透彻流畅,是毋庸置疑的Windows程序...本文件为该书的配套光盘源代码。

    MFC Windows应用程序设计源代码1.rar

    在这个名为"MFC Windows应用程序设计源代码1.rar"的压缩包中,包含了多个章节的例题代码,分别是01至06章。这些代码可能是为了帮助初学者逐步理解和掌握MFC编程的关键概念和技术。下面将详细解析每个章节可能涉及的...

    windows编程源代码

    在本资源"windows编程源代码"中,我们可以看到它与"开发环境Visual Studio 2005"相关,这表明源代码是基于这个版本的IDE编写的。虽然标签提及了"visualstudio 2008",但根据标题描述,源代码可能主要是针对Visual ...

    windows官方驱动开发demo源代码

    "windows官方驱动开发demo源代码"提供了一系列官方样例,帮助开发者理解和学习如何为Windows平台编写驱动程序。这个压缩包包含了多种类型的驱动开发示例,包括USB驱动和打印驱动等。 首先,让我们深入了解USB驱动...

    驱动程序和源代码

    驱动程序和源代码是计算机软件开发中的重要组成部分,它们构成了操作系统与硬件设备之间的桥梁,以及开发者与系统底层交互的基础。在计算机科学中,驱动程序(Driver)是一种特殊的软件,其主要任务是允许操作系统与...

    原创C#抽奖程序源代码.net3.5平台

    这篇文档将深入解析标题为"原创C#抽奖程序源代码.net3.5平台"的项目,该程序设计用于实现一个简单而实用的抽奖系统。基于.NET Framework 3.5平台,利用C#语言进行开发,它允许用户自定义中奖人数和参与者的总数,并...

    MFC Windows 程序设计(源代码)

    《MFC Windows程序设计》是一本专为初学者和进阶者准备的MFC编程指南。MFC(Microsoft Foundation Classes)是微软开发的一个C++类库,它为Windows应用程序开发提供了丰富的接口,使得开发者能够更加高效地利用...

    简单的人工智能程序ELIZA的C源程序代码

    源代码文件"ELIZA.C"包含的就是ELIZA程序的源代码,开发者可以通过阅读和分析这段代码来学习如何用C语言实现这样的文本处理程序。 "ELIZA.EXE"是一个可执行文件,它是编译后的ELIZA程序,可以在支持C语言运行环境的...

    asp.net程序源代码集锦03

    【ASP.NET程序源代码集锦03】是一个包含多种ASP.NET相关源代码的资源包,非常适合初学者学习和参考。ASP.NET是微软公司推出的一种Web应用程序框架,它基于.NET Framework,用于构建动态、数据驱动的Web应用。这个...

    VC++6.0 实现的画线程序源代码

    《VC++6.0 实现的画线程序源代码解析》 在计算机编程领域,图形用户界面(GUI)的应用越来越广泛,其中画线功能作为基本的交互方式之一,被广泛应用于各种应用程序中。本篇文章将深入探讨使用VC++6.0实现的画线程序...

    仿WINDOWS简易计算器源代码

    【标题】:“仿WINDOWS简易计算器源代码”是一个项目,旨在模仿Windows操作系统内置的计算器应用程序,但只实现了其最基本的功能。这个源代码设计简洁,目的是为了方便开发者进行自定义扩展,以便学习和理解基础的...

    用VB实现的三维CAD绘图程序源代码

    总结来说,用VB实现的三维CAD绘图程序源代码是一个宝贵的教育资源,可以帮助开发者提升在图形编程、3D建模和VB应用开发方面的能力。通过深入研究和实践,不仅可以掌握VB编程技巧,还能深入理解3D图形学的基本原理,...

    拼图小程序源代码(VC++)

    【描述】"终极版源代码——拼图小程序源代码(VC++)"指出这可能是该拼图游戏的最终或最完善的版本,意味着它可能经过了多次迭代和优化,具备良好的性能和用户体验。源代码的提供对于开发者来说是一份宝贵的资源,...

    Windows粘贴板源代码

    这个标题为“Windows粘贴板源代码”的资源,很可能是Windows 2000系统中实现粘贴板功能的原始C语言代码,对于想要深入理解Windows API和C编程的开发者来说,是一份非常有价值的参考资料。 粘贴板工作原理的核心在于...

    Windows画图源代码

    Windows画图是Windows操作系统自带的一个简单图形编辑器,它的源代码为我们提供了宝贵的实践素材。 首先,我们要知道,“Windows画图”源代码基于C语言编写,这是一种基础且强大的编程语言,广泛应用于系统级编程和...

    WINDOWS程序设计配套代码

    《WINDOWS程序设计配套代码》是Charles Petzold的《Programming Windows》第五版的源代码集合,这本书被誉为Windows编程的经典之作。Petzold先生通过深入浅出的方式,详细讲解了如何在Microsoft Windows环境下进行...

    Windows源代码

    在Windows操作系统中,网络与通信程序设计是至关重要的部分,特别是在如今互联网高度发达的时代。Windows提供了丰富的API(应用程序编程接口)以及开发工具,使得开发者能够创建各种各样的网络应用程序,如聊天软件...

    DOS操作系统源代码

    源代码中会包含设备驱动程序的实现,这些驱动程序使得操作系统能够与硬件进行通信,执行输入输出操作。 5. **命令解析**:DOS提供了简单的命令行接口,用户通过命令行输入指令来操作系统。源代码会揭示如何解析用户...

Global site tag (gtag.js) - Google Analytics