在c语言windows文件的作用,初步了解C语言Windows编程

初步了解C语言Windows编程

发布时间:2019-01-12 10:54

来源:互联网

当前栏目:电脑编程入门

上次我们说了什么是windows编程?了解到WindowsAPI编程、Windows编程、WindowsSDK编程是一个概念。

今天我们运用C语言来实现你的第一个真正的Windows程序。

在c语言windows文件的作用,初步了解C语言Windows编程_第1张图片

windows.h头文件介绍:

编写Windows程序,首先要包含windows.h头文件。windows.h还包含了其他一些Windows头文件,例如:

windef.h:基本类型定义

winbase.h:内核函数

wingdi.h:用户接口函数

winuser.h:图形设备接口函数

这些头文件定义了Windows的所有数据类型、函数原型、数据结构和符号常量,也就是说,所有的WindowsAPI都在这些头文件中声明。在C语言中,程序都是“黑屏”的,称为控制台程序(ConsoleApplication)。这套教程要讲的是带界面的Windows程序(WindowsApplication),也称为GUI程序(GUIApplication)。控制台程序以main()为入口函数,Windows程序以WinMain()为入口函数,动态链接库(DLL)以DllMain()为入口函数,不同的入口函数决定了不同类型的程序。

WinMain()函数的原型为:

intWINAPIWinMain(

HINSTANCEhInstance,//当前窗口句柄

HINSTANCEhPrevInstance,//前一个窗口句柄,Win32下为NULL(Win16留下的废物,目前已弃用)

LPSTRlpCmdLine,//命令行参数

intnCmdShow//窗口显示方式

);

先不要急于理解这些参数的含义,我先给大家写一个简单的不带黑屏的、真正的Windows程序:

#include

intWINAPIWinMain(

HINSTANCEhInstance,

HINSTANCEhPrevInstance,

LPSTRlpCmdLine,

intnCmdShow

){

//调用API函数MessageBox

intnSelect=MessageBox(NULL,TEXT("你好,这是源世界介绍windows编程的例子"),TEXT("源世界出品,禁止转载!"),MB_OKCANCEL);

if(nSelect==IDOK){

MessageBox(NULL,TEXT("你点击了“确定”按钮"),TEXT("提示"),MB_OK);

}else{

MessageBox(NULL,TEXT("你点击了“取消”按钮"),TEXT("提示"),MB_OK);

}

return0;

}

运行结果:

在c语言windows文件的作用,初步了解C语言Windows编程_第2张图片

在c语言windows文件的作用,初步了解C语言Windows编程_第3张图片

点击“确定”或“取消”按钮,又会弹出一个新的提示框。大家可以亲自运行一下,会有真实的体验。

原来没有main()函数,没有#include的C语言程序也是可以运行的!

MessageBox()函数是众多API中的一个,用于弹出一个指定风格的对话框,其原型为:

intWINAPIMessageBox(HWNDhWnd,LPCTSTRlpText,LPCTSTRlpCaption,UINTuType);

WINAPI为宏定义

#defineWINAPI__stdcall,表示函数调用方式,暂时可以不理会,不影响代码编写,只需要知道MessageBox()返回值为int,表示按下的按钮。

参数说明:

hWnd:该消息框的父窗口句柄,如果此参数为NULL,则该消息框没有拥有父窗口。大家不用急于理解这个参数,后续会详细讲解。

lpText:消息框的内容。LPCTSTR是自定义数据类型,等价于constchar*。

lpCaption:消息框的标题。

uType:对话框的按钮样式和图标。

uType支持的按钮样式:

在c语言windows文件的作用,初步了解C语言Windows编程_第4张图片

这些按钮都是宏定义:

#defineMB_OK0x00000000L

#defineMB_OKCANCEL0x00000001L

#defineMB_ABORTRETRYIGNORE0x00000002L

#defineMB_YESNOCANCEL0x00000003L

#defineMB_YESNO0x00000004L

#defineMB_RETRYCANCEL0x00000005L

你也可以尝试用数字来表示按钮,例如:

MessageBox(NULL,TEXT("你好,欢迎源世界您!"),TEXT("源世界出品!"),1);

也会生成与上面相同的对话框。

除了按钮,uType还支持图标(图标对用户有提醒作用):

在c语言windows文件的作用,初步了解C语言Windows编程_第5张图片

这些图标也都是宏定义:

#defineMB_ICONHAND0x00000010L

#defineMB_ICONQUESTION0x00000020L

#defineMB_ICONEXCLAMATION0x00000030L

#defineMB_ICONASTERISK0x00000040L

如果希望同时定义按钮和图标的样式,可以使用或运算|,例如:

MessageBox(

NULL,

TEXT("这是源世界整理的例子!"),

TEXT("源世界整理"),

MB_OKCANCEL|MB_ICONINFORMATION

);

把上面的MessageBox换成这个就ok了。运行结果:

与上面的对话框相比,多出了一个图标,同时还能听到提示音。是不是多了一个提示符号在文字的前面啊。

再看来一下MessageBox()的返回值。

MessageBox()返回被按下的按钮,以数字表示,这些数字都被定义成了宏,如下所示:

对应的宏定义为:

#defineIDOK1

#defineIDCANCEL2

#defineIDABORT3

#defineIDRETRY4

#defineIDIGNORE5

#defineIDYES6

#defineIDNO7

总结:

对于刚刚学完C语言的,学windows编程的,这些都是满满的干货,一定要记住喔。从你学windows编程开始,你就已经告别了难看的windowsdo界面,只要一步一步走,写一个漂亮的window程序不在话下。这些都是以后学习必须掌握的,先收藏吧!

你可能感兴趣的:(在c语言windows文件的作用,初步了解C语言Windows编程)