二十行代码带你飞速入门Windows编程 |
您所在的位置:网站首页 › windows没有记事本 › 二十行代码带你飞速入门Windows编程 |
一、Windows编程——Hello World1、开发工具Visual Studio 20132、源代码3、主函数 不同于我们熟知的 C/C++ 的 main 函数,Windows 用的是 WinMain,并且前面还多了个 WINAPI,下面我们来详细说一下。 窗口程序的入口函数:WinMain 控制台窗口应用程序入口函数:main 什么是 WINAPI ? WINAPI:函数调用约定。 约定了: 1、函数的入栈方式——从右到左 2、由谁来平衡堆栈 WINAPI、CALLBACK、APIENTRY : 从右往左入栈 ,本质:__stdcall(标准调用方式) WINAPIV : 从右往左入栈,本质:__cdecl 转到定义,发现它们是这样的: #define CALLBACK __stdcall #define WINAPI __stdcall #define WINAPIV __cdecl #define APIENTRY WINAPI 4、主函数参数HINSTANCE 定义:应用程序实例句柄类型。 转到定义: DECLARE_HANDLE(HINSTANCE); #define DECLARE_HANDLE(HINSTANCE) struct HINSTANCE__ { int unused; }; typedef struct HINSTANCE__* HINSTANCE 由此,可以看出其本质为:结构体指针 hInstancce 定义:当前应用程序实例句柄 hPreInstance 定义:当前程序的前一个实例句柄 在32位和64位的机器上,已经被废弃了,现在不再使用时,值为 NULL 在16位机器上使用 LPSTR typedef CHAR *NPSTR, *LPSTR, PSTR; 上式表示 CHAR NPSTR LPSTR PSTR typedef char CHAR; 所以 ,LPSTR char* ps : LPCTSRT const char* lpCmdLine lpCmdLine是一个以空终止的字符串,指定传递给应用程序的命令行参数。 例如:在C盘下有一个 a.txt 文件,当我们用鼠标双击这个文件时将启动记事本程序(notepad.exe),此时系统会将 C:\a.txt 作为命令行参数传递给记事本程序的 WinMain 函数,记事本程序在得到这个文件的全路径名后,就在窗口中显示该文件的内容。 nCmdShow 窗口显示方式:最大化,最小化,普通,正常显示 MessageBox Windows编程中经常用到的一个API,作用是弹出一个消息提示框 int WINAPI MessageBox ( In_opt HWND hWnd, In_opt LPCTSTR lpText, In_opt LPCTSTR lpCaption, In UINT uType ); 详细解释 第一个参数: HWND : 窗口句柄类型(可以理解为窗口的ID) hWnd : 父窗口句柄,如果没有父窗口,就写NULL HWND 本质为结构体指针 DECLARE_HANDLE (HWND); #define DECLARE_HANDLE(name) struct HWND__ { int unused; }; typedef struct HWND__ *HWND 第二个参数: LPCTSTR :显示内容 LPCTSTR 在 Unicode 编码情况下 typedef LPCWSTR PCTSTR, LPCTSTR; typedef CONST WCHAR *LPCWSTR, *PCWSTR; #define CONST const typedef wchar_t WCHAR; 本质:const wchar_t* LPCTSTR LPCTSTR 在 多字节字符集 情况下 typedef LPCTSTR PCTSTR, LPCTSTR; LPCTSTR PCTSTR LPCTSTR typedef CONST CHAR *LPCWSTR, PCWSTR; CONST CHAR LPCTSTR PCWSTR #define CONST const CONST const typedef char CHAR; // char CHAR 本质:const char* LPCTSTR 第三个参数:标题 第四个参数:非客户区的按钮和图标 规则按钮和图标的组合不能按钮和按钮组合不能图标和图标组合 按钮主要有 图标主要有 二、补充小知识API 应用程序编程接口(Aplication Programma Interface) 例如C语言中的 printf,scanf,strlen 函数 Windows API函数 SDK 软件开发包(Software Development Kit) 包含了API函数库,帮助手册,辅助工具,使用文档 窗口 包含标题栏、菜单栏、系统菜单、最下化框,最大化框,滚动 窗口主要分为 客户区 和 非客户区 句柄 标志着一种资源 窗口句柄、图标句柄、光标句柄、菜单句柄、进程句柄、线程句柄 C++语言入门到精通 Windows企业级开发入门到精通 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |