Windows API 入门(什么是 Windows API?、 实例程序 、Windows API函数有几个?

203 阅读3分钟

API 叫做 “应用程序编程接口”(Application Programming Interface) ,我们在使用各种各样的编程语言在 Windows 开发时,都可以使用 API函数。

做程序设计、软件开发,肯定要调用或者说是使用  Windows 里已经做好的那些 API 函数。

微软在做 Windows 时,几万人做了十几年做出了大量API函数, Windows 自身在用这些函数,而我们程序员也可以调用这些函数。

所以,API函数是程序员的必学基础。

实例程序

先创建一个常规的空项目,用C++语言。接触的第一个API函数   : 弹出对话框函数

#include <iostream>
#include <Windows.h>//加上Windows.h头文件
using namespace std;

int main()
{
	cout << "Hellow C++" << endl;

	//弹出一个对话框函数,第一个参数为副窗口一般写NULL,第二个参数是消息的内容,第三个参数是标题,第四个参数是按钮(常量)
	MessageBox(NULL, TEXT("Hellow C++"), TEXT("标题"), MB_OK);

	system("pause");
	return 0;
}

我们也可以 把 main函数改一改 。因为我们现在要做的是Windows的程序,Windows的程序有一个 Winmain  , 我们把 Winmain 写上,就更能体现我们是 Windows 程序

Winmain()有四个参数,微软规定我们做 Windows 程序设计, 就必须把这四个参数写上,即使不用到。(c语言或者c++语言的程序可以是windows的,也可以不是windows的)

#include <iostream>
#include <Windows.h>//加上Windows.h头文件
using namespace std;

int WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
	cout << "Hellow C++" << endl;

	//弹出一个消息框函数,第一个参数为副窗口一般写NULL,第二个参数是消息的内容,第三个参数是标题,第四个参数是按钮(常量)
	MessageBox(NULL, TEXT("Hellow C++"), TEXT("标题"), MB_OK);

	system("pause");
	return 0;
}

上面的已经越来越像 Windows 程序设计了 , 下面来做一个稍微复杂一点的例子 , 建立一个 Win32 项目 ,取代常规空项目。这个就是 Windows 窗口界面的了,就不是那个黑黑的窗口了。

建立好了之后会自动出现很多已经生成的代码,现在暂且不理会它们,以后要慢慢学习

比如我在这里添加一个  按下鼠标左键,弹出消息框 函数

运行一下   然后单击鼠标左键

再来一个MFC

最简单的MFC,勾选 “基于对话框”

运行

又因为 API在MFC中有了新的包装

/*
void CMFCApplication2Dlg::OnBnClickedButton1()
{
	// TODO:  在此添加控件通知处理程序代码
	::MessageBox(NULL, TEXT("Hellow MFC"), TEXT("标题啦啦啦"), MB_OK);
	//因为MFC是C++  而这些API函数都是在默认命名空间里的,所以要加 "::"
}
*/

void CMFCApplication2Dlg::OnBnClickedButton1()
{
	// TODO:  在此添加控件通知处理程序代码
	MessageBox(TEXT("Hellow MFC"), TEXT("标题"));//作了简化,同样可以运行
	//我们也可以写成这样,这时的MessageBox函数不在默认作用域里了,应该是在 CMFCApplication2Dlg 这个类里了
	//为了一探究竟,我们可以点开 CMFCApplication2Dlg.h 这个头文件


### 紧跟潮流



大前端和全栈是以后前端的一个趋势,懂后端的前端,懂各端的前端更加具有竞争力,以后可以往这个方向靠拢。

这边整理了一个对标“阿里 50W”年薪企业高级前端工程师成长路线,由于图片太大仅展示一小部分


![](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/89a39e6b985e42e5b91b6cc8a1c0e8d8~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3NTc5MjMwMTY3MDI=:q75.awebp?rk3s=f64ab15b&x-expires=1771415119&x-signature=Nw7TwSvaMijLB9%2FgjXrvzigrCeM%3D)
**开源分享:https://docs.qq.com/doc/DSmRnRGxvUkxTREhO**