二十行代码带你飞速入门Windows编程

您所在的位置:网站首页 windows没有记事本 二十行代码带你飞速入门Windows编程

二十行代码带你飞速入门Windows编程

2023-03-27 02:28| 来源: 网络整理| 查看: 265

一、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