开发一个Windows版的hello world

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

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

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

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

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


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


第二步:文件—新建


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


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


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


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


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

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


执行结果


全部代码:

#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;
}

执行结果:

弹出询问年龄的消息框


当用户点击是



当用户点击否:


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;
}

执行结果:

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


当用户点击了是后


当用户点击了否后


当用户点击了重试后


参考资料

       信息框中显示按钮

 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




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值