ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

1.windows编程入门MessageBox使用 -zobol的windows编程教程

2022-06-17 01:32:49  阅读:202  来源: 互联网

标签:MessageBox 窗口 函数 windows WinMain 编程 int https


引言:刚开始入门windows编程的时候,我记得当时我对MFC的给出的一大堆代码感到束手无策。因为历史的缘故,windows编程入门的代码并没有体现出C++语言的简洁性,相反一上来就给了我们一大堆代码、类和宏。不过,我还是喜欢C++的入门“hello world”的简洁,所以我编写了一个简单的入门小程序,辅以详细的注释讲解。

个人技术博客(源码): https://zobolblog.github.io/LearnWinAPI/

最终效果:

 

 

1.调整项目属性设置。

  因为我们写的是一个窗口windows程序,而不是之前C++的dos黑框框程序,所以我们需要调整vs的项目属性-链接器-系统-子系统,讲subsystem设置为窗口。

  如果不修改,会遇到error,因为在控制台模式下,程序会寻找main函数作为起始函数,而windows窗口程序的起始函数是WinMain。

 

2.引入头文件windows.h

  微软对windows的庞大api做了很好的头文件封装,我们只需要一个windows.h就可以使用大部分功能。

#include "windows.h"

  你可以,右键打开windows.h文档简单看一下,不过它编写的并不适合查询,查询可以使用微软的官方Doc:https://docs.microsoft.com/zh-cn/

 

3.编写起始函数WinMain

  dos程序的起始点是main函数,windows窗口程序的起始函数是WinMain函数。它增加了很多宏和参数,不过不用担心,你只需要复制就可以,这些宏的意思后面我会讲。它们基本上在所有程序中,写法都一样,所以这里复制就可以,只需要知道它相当于Main。

 

int WINAI WinMain (
_In_ HINSTANCE hInstance,
_In_opt_ HINSTANCE hPrevInstance,
_In_ LPSTR lpCmdLine,
_In_ int nShowCmd
);

 

4.接触第一个消息框函数MessageBox

  Message函数刚开始使用起来,感觉有点类似于printf,它可以把信息显示给用户。但实际上printf是格式化输出函数,Message实际上是拉起一个小的信息窗口windows。不过,刚开始学习的话,都可以将它看作是windows版的信息打印函数。

int MessageBox(
HWND hWnd,
LPCTSTR lpText,
LPCTSTR lpCaption,
UINT uType
)

 

  第1个HWND hWnd是所属句柄,也就是这个消息框所属于哪个父窗口,这里我们填NULL就好,默认属于桌面。

  第2个LPCTSTR lpText,是窗口显示的内容。

  第3个LPCTSTR lpCaption是窗口的标题

  第4个UINT uType是消息框的类型,微软内置了多种消息框的类型,通过宏来切换。

 

5.消息框的UINT uType类型

  INT uType本质是个枚举宏,一共有二十多种,部分可以重叠生效用A|B来表示。

 

  具体可以查询官方目录:https://docs.microsoft.com/zh-CN/windows/win32/api/winuser/nf-winuser-messagebox

 

源码:

#include "windows.h"

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
{
  MessageBox(NULL, L"zobol的windows基础教程", L"第一个窗口",MB_ABORTRETRYIGNORE | MB_ICONASTERISK);
}

 

效果:

 

本人个人技术博客: https://zobolblog.github.io/LearnWinAPI/ ,B站账号:zobol,个人公众号:zobol的魔法藏书室,技术讨论群:811851762。所有源码和文章均整理上传其中,欢迎关注。

 

本文参考资料:https://docs.microsoft.com/zh-CN/windows/win32/api/winuser/nf-winuser-messagebox

标签:MessageBox,窗口,函数,windows,WinMain,编程,int,https
来源: https://www.cnblogs.com/zobol/p/16384235.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有