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

什么是 Windows API?

Windows API又叫做 API 函数, 是 Windows 的核心,从技术上讲,我们技术人员在 Windows 操作系统里做技术开发,Windows 对我们技术人员来说,里面有大量的 API 函数。

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 这个头文件
}

我们点开了 CMFCApplication2Dlg.h 这个头文件


可见 , 这个类 继承了 CDialogEx  这个类, 那么 明白了 , 那个 MessageBox 函数是在父类 CDialogEx  这个类中




Windows API函数有几个?

实际上,有几万个API函数。。就像一本英语词典,我们需要熟练掌握那些常用的,而另外的则是遇到了再进行学习







  • 56
    点赞
  • 243
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Windows APIWindows操作系统提供的一组核心API函数,可以用于开发Windows应用程序。这些API函数提供了许多功能,例如窗口管理、文件操作、网络通信等。使用Windows API可以让开发者更加灵活地控制Windows系统,实现更加复杂的功能。以下是一个使用Windows API创建一个简单窗口的示例: ```c #include <windows.h> LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) { static TCHAR szAppName[] = TEXT("HelloWin"); HWND hwnd; MSG msg; WNDCLASS wndclass; wndclass.style = CS_HREDRAW | CS_VREDRAW; wndclass.lpfnWndProc = WndProc; wndclass.cbClsExtra = 0; wndclass.cbWndExtra = 0; wndclass.hInstance = hInstance; wndclass.hIcon = LoadIcon(NULL, IDI_APPLICATION); wndclass.hCursor = LoadCursor(NULL, IDC_ARROW); wndclass.hbrBackground = (HBRUSH) GetStockObject(WHITE_BRUSH); wndclass.lpszMenuName = NULL; wndclass.lpszClassName = szAppName; if (!RegisterClass(&wndclass)) { MessageBox(NULL, TEXT("This program requires Windows NT!"), szAppName, MB_ICONERROR); return 0; } hwnd = CreateWindow(szAppName, // window class name TEXT("The Hello Program"), // window caption WS_OVERLAPPEDWINDOW, // window style CW_USEDEFAULT, // initial x position CW_USEDEFAULT, // initial y position CW_USEDEFAULT, // initial x size CW_USEDEFAULT, // initial y size NULL, // parent window handle NULL, // window menu handle hInstance, // program instance handle NULL); // creation parameters ShowWindow(hwnd, iCmdShow); UpdateWindow(hwnd); while (GetMessage(&msg, NULL, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); } return msg.wParam; } LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { HDC hdc; PAINTSTRUCT ps; RECT rect; switch (message) { case WM_CREATE: return 0; case WM_PAINT: hdc = BeginPaint(hwnd, &ps); GetClientRect(hwnd, &rect); DrawText(hdc, TEXT("Hello, Windows API!"), -1, &rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER); EndPaint(hwnd, &ps); return 0; case WM_DESTROY: PostQuitMessage(0); return 0; } return DefWindowProc(hwnd, message, wParam, lParam); } ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值