开发一个Windows版的hello world

各位码农们还在为写不出漂亮的界面而苦恼吗?

还在为只能写出黑底白字的控制台程序而难过吗?

今天我教大家告别控制台程序,进入Windows图形界面开发

开发Windows图形界面只要大家耳熟能详的VC6.0就OK了

众所周知编程都是从hello world 开始的今天教大家开发Win32版的 hello world


第一步:打开各位码农们耳熟能详的VC6.0

开发一个Windows版的hello world_第1张图片


第二步:文件—新建

开发一个Windows版的hello world_第2张图片


第三步: 选择 Win32 Application 输入一个工程名后单击确定

开发一个Windows版的hello world_第3张图片


第四步: 选择一个简单的Win32程序----单击完成

开发一个Windows版的hello world_第4张图片


第五步:单击 111(工程名) classes --Globals-----WinMain(HINST

开发一个Windows版的hello world_第5张图片


第六步: 进入Win32 程序开发界面

开发一个Windows版的hello world_第6张图片


第七步:在 TODD Place code here 下面写上下面的代码

	MessageBox(NULL,TEXT("hello world !\n"),TEXT("Say hello"),MB_OK);


执行结果

开发一个Windows版的hello world_第7张图片


全部代码:

#include "stdafx.h"

int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow)
{
 	// TODO: Place code here.

	MessageBox(NULL,TEXT("hello world !\n"),TEXT("Say hello"),MB_OK);

	return 0;
}


C语言控制台代码:

#include <stdio.h>

int main()
{
   printf("hello world !\n");

   return 0;
}


通过以上两段代码的比较可以得出以下结论:

1 C语言控制台程序和Win32程序中都有头文件

2 C语言控制台程序和Win32程序中都有主函数

3 Win32程序中的MessageBox类似于C语言控制台中的printf


函数分析


函数名:WinMain


函数原型:

int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow)

函数功能:Windows程序的主函数(类似于C语言中的 main())

参考文章:点击打开链接


参数:

hInstance 类型 HINSTANCE(程序的实例句柄类型)

意义: 程序的实例句柄(句柄是Win32编程中一个非常重要的概念)


hPrevInstance  类型: HINSTANCE(程序的实例句柄类型)

意义: 程序的实例句柄(句柄是Win32编程中一个非常重要的概念)


lpCmdLine  类型: LPSTR(字符串指针)

意义:命令行


 nCmdShow  类型: int

意义:显示方式(一般不用)


函数名:MessageBox

函数原型:

int WINAPI MessageBox(
  _In_opt_  HWND hWnd,
  _In_opt_  LPCTSTR lpText,
  _In_opt_  LPCTSTR lpCaption,
  _In_      UINT uType
);

函数功能:显示一个消息窗口

参考文章:点击打开链接


参数:

hWnd: 类型 HWND(窗口句柄)

意义:程序的句柄


lpText: 类型 LPCTSTR(字符串指针)

意义:消息框中的内容


lpCaption: 类型 LPCTSTR(字符串指针)

意义:消息框的标题


uType: 类型 int

意义:消息框上显示的按钮


应用实例:

1 弹出一个问年龄的消息框并在消息框上显示一个问号和一个是一个否两个按钮

当用户点击是的时候弹出一个消息框,当用户点击否弹出另一个消息框

代码:

#include "stdafx.h"

int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow)
{
 	// TODO: Place code here.
	
	//得到用户单击的按钮
	int ret = MessageBox(NULL,TEXT("你今年有18岁吗?\n"),TEXT("询问"),MB_YESNO | MB_ICONQUESTION);

	if(IDYES == ret)//当用户单击了是
	{
		MessageBox(NULL,TEXT("你是成年人"),TEXT("回答"),MB_OK);
	}
	else//当用户点击了否
	{
		MessageBox(NULL,TEXT("你是未成年人"),TEXT("回答"),MB_OK);
	}

	return 0;
}

执行结果:

弹出询问年龄的消息框

开发一个Windows版的hello world_第8张图片


当用户点击是

开发一个Windows版的hello world_第9张图片


当用户点击否:

开发一个Windows版的hello world_第10张图片


2 消息框的综合应用

源代码:

#include "stdafx.h"
#include <stdlib.h>

int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow)
{
 	// TODO: Place code here.
	
	//得到用户单击的按钮
	int ret = MessageBox(NULL,TEXT("你是好人吗?\n"),TEXT("询问"),MB_YESNO | MB_ICONQUESTION);

	if(IDYES == ret)//当用户单击了是
	{
		MessageBox(NULL,TEXT("看你就不像好人点击【确定】开始格式化C盘"),TEXT("回答"),MB_OK | MB_ICONEXCLAMATION);
	}
	else//当用户点击了否
	{
		//得到用户单击的按钮
		ret = MessageBox(NULL,TEXT("尝试把你变成好人失败,是否重试?"),TEXT("回答"), MB_RETRYCANCEL | MB_ICONEXCLAMATION);

		if(IDRETRY == ret)//当用户单击了重试
		{
			MessageBox(NULL,TEXT("多做好事就可以变成好人"),TEXT("回答"),MB_OK);
		}
		else//当用户单击取消
		{
			exit(0);//退出程序
		}
	}

	return 0;
}

执行结果:

弹出一个询问好人坏人的消息框

开发一个Windows版的hello world_第11张图片


当用户点击了是后

开发一个Windows版的hello world_第12张图片


当用户点击了否后

开发一个Windows版的hello world_第13张图片


当用户点击了重试后

开发一个Windows版的hello world_第14张图片


参考资料

       信息框中显示按钮

 MB_OK

0x00000000L

确认按钮

MB_OKCANCEL

0x00000001L

确认取消

 MB_ABORTRETRYIGNORE

0x00000002L

中止重试忽略

MB_YESNOCANCEL

0x00000003L

是否取消

MB_YESNO

0x00000004L

是否

 MB_RETRYCANCEL

0x00000005L

重试取消




信息框显示图标

MB_ICONHAND

0x00000010L

X

MB_ICONQUESTION

0x00000020L

MB_ICONEXCLAMATION

0x00000030L

警告

MB_ICONASTERISK

0x00000040L

i

 

按钮

IDOK

确认

IDCANCEL

取消

IDBORT

退出

IDRETRY

重试

IDIGNORE

忽视

IDYES

IDNO





你可能感兴趣的:(开发一个Windows版的hello world)