精华内容
下载资源
问答
  • hwnd是什么数据类型
    千次阅读
    2015-01-08 16:51:54

                                                                                                                                                                          

    Windows常用的句柄类型

           句柄类型 说明

           HBITMP:标示位图句柄
           HBRUSH:标示画刷句柄
           HCOURSOR:标示鼠标光标句柄
           HDC:标示设备环境句柄
           HFONT:标示字体句柄
           HICON:标示图标句柄
           HINSTANCE:标示当前实例句柄
           HMENU:标示菜单句柄
           HPALETTE:颜色调色板句柄
           HPEN:标示画笔句柄
           HWND:标示窗口句柄

           HFILE:标示文件句柄

           HKEY:注册表项句柄


                                                                                                                                                                                           说明:

          1、基本数据类型都是以大写字符出现,与一般C++基本数据类型相区别;
          2、凡是数据类型的前缀是P或LP,则表示该类型是一个指针或长指针数据类型。如果前缀是H,则表示是句柄类型。若前缀是U,则表示是无符号数据类型,等等。

          3、Windows还提供一些宏来处理上述基本数据类型。如LOBYTE和HIBYTE分别用来获取16位数值中的低位和高位字节;LOWORD和HIWORD分别用来获取32位数值中的低位和高位字;MAKEWORD是将两个16位无符号值结合成一个32位无符号值,等等。


          

    更多相关内容
  • 句柄HWND数据类型

    千次阅读 2012-07-08 00:19:00
    所以HWND应该是一个 HWND__型指针,而HWND__是一个包含一个int型数据结构的结构体。 只有在STRICT未定义的情况下 HWND 才是一个void指针。 PS:不过STRICT未定义的情况还不太了解。 ...

    在VC++6中使用右键转至定义一步一步查看HWND

    1、

    HWND

    2、

    #ifndef WIN_INTERNAL
    DECLARE_HANDLE            (HWND);  //<-这里
    DECLARE_HANDLE            (HHOOK);
    #ifdef WINABLE
    DECLARE_HANDLE            (HEVENT);
    #endif
    #endif

    3、

    #ifdef STRICT          //#ifndef STRICT
                           //#define STRICT 1  
                           //#endif
    typedef void *HANDLE;
    #define DECLARE_HANDLE(name) struct name##__ { int unused; }; typedef struct name##__ *name //<-这里
    #else
    typedef PVOID HANDLE;      //typedef void *PVOID;
    #define DECLARE_HANDLE(name) typedef HANDLE name //<-这里
    #endif
    typedef HANDLE *PHANDLE;

    整理一下

    struct HWND__ { 

        int unused ;

    };

    typedef struct HWND__ *HWND;

    所以HWND应该是一个 HWND__型指针,而HWND__是一个包含一个int型数据结构的结构体。

    只有在STRICT未定义的情况下 HWND 才是一个void指针。

    PS:不过STRICT未定义的情况还不太了解。

    转载于:https://my.oschina.net/TMDJoJo/blog/65414

    展开全文
  • 本实例定义了几个常用常量的 Windows 数据类型,包括 DWORD,LPSTR 和 CHAR,并演示 了如何使用它们进行了复制、比较大小等操作。

    本实例定义了几个常用常量的 Windows 数据类型,包括 DWORD,LPSTR ,CHAR和HWND,并演示
    了如何使用它们进行了复制、比较大小等操作。

    #include<Windows.h>
    #include<stdio.h>
    
    int WinMain(HINSTANCE hInstance,
        HINSTANCE hPrevInstance,
        LPSTR lpCmdLine,
        int nCmdShow){
    
        //定义字符串
        LPSTR szString = "我要学习";
        //字符数组
        CHAR lpString[120];
        //DWORD类型数据
        DWORD dwMax = 0xFFFFFFFF;
        DWORD dwOne = 0x1;
        //INT类型数据
        INT iMax = 0xFFFFFFFF;
        INT iOne = 0x1;
        //显示字符串
        MessageBoxA(NULL, szString, "LPSTR", MB_OK);
    
        //将字符串复制到数组中
        CopyMemory(lpString, szString, lstrlen(szString) + 1);
        MessageBox(NULL, lpString, "CHAR[]", MB_OK);
    
        //比较DWORD
        if (dwMax > dwOne){
            MessageBox(NULL, "dwMax大于dwOne", "DWORD", MB_OK);
        }
        if (iMax < iOne){
            MessageBox(NULL, "iMax小于iOne", "INT", MB_OK);
        }
        return 0;
    }

    在这个程序中,使用了 4 种 Windows 数据类型,分别是 LPSTR、CHAR、DWORD 和 INT。
    LPSTR 类型的数据是字符串,也就是字符指针,CHAR 是字符,DWORD 是 32 位的无符号
    整数,INT 是 32 位有符号整数。
    程序运行后会弹出 4 个对话框。 这说明 dwMax>dwOne 是成立的。 iMax<iOne 也是成立的。dwMax 与 iMax 的数值是一样的,dwOne 与 iOne 的数值也是一样的。但是比较结果不同,是因为二者的数据类型不一样。
    Windows API 函数、数据结构等都是采用 Windows 数据类型。比如 Windows API 函数的入口参数、返回值等都是 Windows 数据类型。因此学习 Windows API 程序设计必须要了解Windows 数据类型。
    事实上,这些 Windows 数据类型都是从标准 C 的数据类型经过类型重定义而来。比如,INT的定义如typedef int INT,DWORD的定义如:typedef unsigned long DWORD,CHAR的定义如:typedef char CHAR。看到这里,有C语言基础的朋友就或许能明白为什么dwMax 与 iMax 的数值是一样的,dwOne 与 iOne 的数值也是一样的了。因为这里iMax实际的值是不是0xFFFFFFFF而是-1。而DWORD因为是长整型,所以没问题。

    最常见的 Windows 数据类型

    类型描述
    BOOL布尔型变量
    BYTE字节类型(8位)
    CHAR8比特字节(ANSI)
    CONST常量,相当于const
    DWORD32字节无符号整型数据
    DWORD3232字节无符号整型数据
    DWORD6464字节无符号整型数据
    HANDLE对象句柄,最基本的句柄类型
    HINSTANCE程序实例句柄
    HICON图标的句柄
    HWND窗口句柄
    LPCSTRWindows(ANSI)字符串常量
    LPCTSTRUNICODE字符串常量,定义了UNICODE宏
    LPCWSTRUNICODE字符串常量,未定义宏
    LPSTRWindows(ANSI)字符串变量
    LPWSTRUNICODE字符串变量
    WINAPIWindows API的函数调用方式
    Tips1: 句柄。句柄是Win应用程序中十分重要的一个概念,在 前一章中有清楚的说明。
    Tips2:关于UNICODE与ANSI的恩怨情仇,请点击 这里

    Windows 数据类型名命名的规律

    Windows 数据类型的命名都很有规律。基本数据类型包括 BYTE、CHAR、WORD、SHORT、DOWRD、INT 等。指针类型的命令方式一般是在其指向的数据类型前加“LP”或“P”,比如指向 DWORD的指针类型为“LPDWORD”和“PDWORD”。各种句柄类型的命令方式一般都是在对象名前加“H”。Windows 系统中有很多对象,所有表示一个对象的数据类型都是句柄,每一种对象都对应着一种句柄类型,比如与位图 ( BITMAP)对应的句柄类型为“HBITMAP”, 与菜单(MENU)对应的句柄类型为“HMENU”,与窗口(WINDOW)对应的句柄类型为“HWND” 无符号类型一般是以“U”开头,比如“INT”是符号类型,“UINT”是无符号类型, “LONG”是符号类型“ULONG”是无符号类型等。

    Windows数据类型与标准C数据类型的关系

    查看 Windows 数据类型的定义可以看到, 所有的 Windows 数据类型都是由 C 数据类型经过类型重定义得到的。如 DWORD 实质上就是 unsigned long 数据类型,32 位的无符号整型。而在 Windows 程序设计中经常用到的 HANDLE 类型实质上是无类型指针 void。所有的 Windows 数据类型都是通过这种方式在 SDK 的头文件中进行定义的, 它们都是来源于标准 C 的数据类型。实际上 VC 编译器是一个完整的 C 编译器,此外并没有过多的扩展。Windows 数据类型也不是 VC 的内建类型,而是从标准 C 类型重定义得到

    Windows数据类型与Windows API

    Windows API 函数的参数、返回值或一些重要的常量使用的数据类型都是 Windows 数据类型。MessageBox 函数的返回值是 int 型的,是标准 C 数据类型,但是所有的参数都使用了Windows 数据类型。如 HWND 是一种 Windows 数据类型,用于表示窗口的句柄;LPCTSTR 也是Windows 数据类型,表示字符串常量;UINT 也是 Windows 数据类型,为无符号整型。

    Windows中的数据结构

    Windows 中包含很多种数据结构类型,在不同类型的 API 中会使用到不同的数据结构,数据结构的数量众多,这些数据结构通常会作为一些 API 的参数输入。Windows API 中的数据结构定义具有一定的特点,一般情况下,Windows 系统中使用全大写来命名结构体、共用体,并使用“_”来分隔单词,在结构名加“LP”或“P”表示指向数据结构的指针。

    展开全文
  • HINSTANCE 是Windows里的一中数据类型,其实就是一个无符号的长整形,是32位的,是用于标示(记录)一个程序的实例。它与HMODULE是一样的(通用的,这两种类型最终就是无符号长整形)。 HINSTANCE, 分开看就是 H + ...

    1.变量类型 HINSTANCE
    HINSTANCE 是Windows里的一中数据类型,其实就是一个无符号的长整形,是32位的,是用于标示(记录)一个程序的实例。它与HMODULE是一样的(通用的,这两种类型最终就是无符号长整形)。
    HINSTANCE, 分开看就是 H + INSTANCE, 其中H代表 HANDLE(再程序中翻译为“句柄”的意思),INSTANCE 中文就是"实例"的意思。
    想得到一个实例, 可通过全局API函数 GetModuleHandle 得到,参数传入模块的名字(exe或者DLL的名字),返回的类型是HMODULE,其实就是HINSTANCE类型。 或者在入口函数(如WinMain)的参数可以得到(是操作系统传进入的),你可以在入口函数里把这个变量的值保存起来以方便后面使用。
    2.变量类型 HWND
    1、HWND 是一个基本类型,和char int等同级别的,可以把它当做long型去看待。它就像是身份证号一样,人生下来政府给发个身份证号,窗口创建系统就分配一个句柄。通过身份号,可以知道人的 姓名、住址、年龄。通过句柄也就能知道窗口类,窗口指针。
    2、HWND:h 是类型描述,表示句柄(handle), Wnd 是变量对象描述,表示窗口,所以hWnd 表示窗口句柄
      hWnd 属性:
      返回窗体或控件的句柄(注意 OLE 容器控件不支持该属性。句柄:是由操作环境定义的一个唯一的整数值,它被程序用来标识或者切换到对象,如窗体或控件等。)。
      语法:
      object.hWnd
      object 所在处代表一个对象表达式,其值是“应用于”列表中的一个对象。
    3.变量类型 HDC
    HDC是Windows的设备描述表句柄。
    在Windows环境中,句柄是用来标识被应用程序所建立或使用的对象的唯一整数,这些对象包括:
    模块(module)
    任务(task)
    实例(instance)
    文件(file)
    内存块(block of memory)
    菜单(menu)
    控制(control)
    字体(font)
    资源(resource), 包括图标(icon),光标(cursor),字符串(string)等
    GDI对象(GDI object), 包括位图(bitmap),画刷(brush),元文件(metafile),调色板(palette),画笔(pen),区域(region),以及设备描述表(device context)。

    HDC是指窗体、控件的句柄,是长整类型
    这是windows编程里很重要的一个类型,它唯一标识了一个对象 比如窗口,按钮,视图等,也就是一个代号
    另外它和C++没有什么直接的关系,HDC是windows系统API中定义的一个数据类型

    展开全文
  • ((WORD)(((DWORD)(l) >> 16) & 0xFFFF)) #define LOBYTE(w) ((BYTE)(w)) #define HIBYTE(w) ((BYTE)(((WORD)(w) >> 8) & 0xFF)) #ifndef WIN_INTERNAL DECLARE_HANDLE (HWND); DECLARE_HANDLE (HHOOK...
  • HWND

    千次阅读 2020-09-10 14:16:32
    在Windows中,句柄是一个系统内部数据结构的引用。例如当你操作一个窗口,或说是一个Delphi窗体时,系统会给你一个该窗口的句柄,系统会通知你:你正在操作142号窗口,就此你的应用程序就能要求系统对142号窗口进行...
  • PVOID是什么数据类型

    千次阅读 2018-06-16 15:56:27
    PVIOD 一个普通指针类型等价于(viod *)还有一些对你有用win api 编程中的数据类型很多,有没有人能 具体讲讲啊?CALLBACK 在应用程序的回调例程中取代FAR PASCALHANDLE 一个32位的无符号整数,用作句柄HDC 设备...
  • 数据类型及Windows句柄

    2012-12-03 12:27:39
    BYTE 8位 unsigned char CHAR 8位 char BOOL 16位 int ...HWND 32位 long int LONG 32位 long int LPCSTR 指向字符串的 const 指针 LPSTR 指向字符串的指针 SHORT 16位短整数 UINT 32位无符号长整数
  • java与C语言的数据类型对应

    千次阅读 2018-01-04 23:36:23
    Java和C数据类型的对应表如下: Java 类型 C 类型 原生表现  boolean  int  32位整数 (可定制)  byte  char   8位整数 ...
  • //Windows API常见数据类型 /* Windows API使用了很多Windows自定义的数据类型(如前面课程的HINSTANCE、 HWND、WPARAM等)。要熟练使用Windows API必须要熟悉Windows数据类型,有些 类型都是从标准C的数据类型经过...
  • JNA数据类型的对应以及使用

    千次阅读 2018-11-06 10:17:58
    Native TypeSizeJava TypeCommon Windows Types char8-bit integerbyteBYTE, TCHAR short16-bit integershortWORD wchar_t16/32-bit charactercharTCHAR int32-bit integerintDWORD intboolean valuebooleanBOOL ...
  • LPVOID 这种类型是指“指向void类型的指针。这是因为ANSI-C的标准中有这种...DWORD,WORD,BYTE 这几种类型无论在什么类型的平台上,都有相同的固定长度。 DWORD的长度为无符号的32位整型,其前缀为dw。 WORD的长度为无
  • Delphi里的Handle和HWND

    千次阅读 2008-01-02 14:10:00
    Windows单元: unit Windows;{$ALIGN ON}{$MINENUMSIZE 4}{$WEAKPACKAGEUNIT}{$IFDEF LINUX}{$DEFINE LINUXCRITSECTION}{...interface...type HWND = type LongWord; Controls单元:unit Controls;{$P+,S-,W-,R-,T...
  • C++学习(一五一)hwnd hdc hglrc

    千次阅读 2020-10-09 06:18:36
    HWND:h是类型描述,表示句柄(handle),Wnd是变量对象描述,表示窗口,所以hWnd表示窗口句柄。Microsoft Windows运行环境,通过给应用程序中的每个窗体和控件分配一个句柄来标识他们。hWnd属性用于Windows API调用。...
  • ctypes类数据类型

    千次阅读 2021-02-03 17:01:43
    代表 C signed char 数据类型,并将值解读为一个小整数。 该构造器接受一个可选的整数初始化器;不会执行溢出检查。 class ctypes.c_char 代表 C char 数据类型,并将值解读为单个字符。 该构造器接受一个可选的字符...
  • Windows数据类型

    2011-04-21 03:59:26
    Windows数据类型的基础学习以及常用的数据类型
  • C++与C#数据类型对应关系总结

    万次阅读 2016-06-20 14:27:40
    API与C#的数据类型对应关系表 API数据类型 类型描述 C#类型 API数据类型 类型描述 C#类型 WORD 16位无符号整数 ushort CHAR 字符 char LONG 32位无符号...
  • 在windows编程中类型名前面加H的基本是句柄常用句柄 : HBITMAP 保存位图信息的内存域的句柄 HBRUSH 画刷句柄 HCTR 子窗口控件句柄 HCURSOR 鼠标光标句柄 HDC 设备描述表句柄 HDLG 对话框句柄 HFONT 字体句柄 HICON ...
  • 问题发现在以下这段代码中,在32位windows7上用DEV-C++编译,无错无警告通过;...LRESULT CALLBACK WndProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam) { static int i=0; static HWND bH
  • C++托管与C#中的数据类型转换

    千次阅读 2017-12-28 11:31:35
    接上一篇文章 C++封装成托管模式供C#调用过程 在C#调用C++托管库的过程中,C++托管库一般只是封装为真正C++动态链接库(DLL)的一个外壳,其不做任何逻辑功能,但是会存在数据类型及结构上的转换问题,本文就是用于...
  • 地址处的数据类型决定了句柄类型, 好比门牌号, 指向程序实例基地址的是实例句柄 指向窗口量地址的是窗口句柄, 具体使用哪个,要看你要访问什么. 微软为这些句柄分别typedef了各自的类型,HINSTANCE,HWNDetc. 本质是...
  • m_hWnd和this指针

    2012-03-06 19:13:30
    m_hWnd和this指针
  • BSTR数据类型

    万次阅读 2017-12-21 11:33:32
    Visual Basic, Java, ...BSTR数据类型是一个UNICODE,固定字节长度,且以NULL结尾的字符串,所有的COM兼容语言都 可以使用。虽然所有的COM兼容的语言都能使用BSTR,但它们都以自己的方式操作。VB程序员用下面的代码
  • 一些常见windows数据类型引言windows编程常用的数据类型字符串转换成窗口句柄HWND 1&amp;amp;amp;gt; 怎么计算一个类型的范围? 以前大学学的8086是16位的寄存器,现在32,64的都有了;那么现在看看数据类型...
  • Windows编程之hdc和hwnd的区别

    万次阅读 多人点赞 2016-10-16 19:27:19
    hWnd(Handle of Window,也可以这么说:h是类型描述,表示句柄;wnd是变量对象描述,表示窗口)是窗口句柄,其中包含窗口的属性。例如,窗口的大小、显示位置、父窗口。 hDC(Handle to Device Context...
  • 将python str格式数据传递给C++的函数,如果C++函数的形参是 std::string or char * ,pybind11会自动将Python stringz转为UTF-8的编码方式。所有python的str都能以UTF-8来编码,所以pybind11的这个操作通常都会成功...
  • 在byte转类型T的过程中,知道byte中存储该数据的起始位置即可,以byte转float为例: float test= System.BitConverter.ToSingle(buffer, 12); 其中buffer为byte数组,12表示从第13位开始读4个字节(float占4字节),...
  • m_hWnd 与 C++中的this指针

    千次阅读 2014-07-28 17:46:00
    ① m_hWnd这个成员变量,最早是定义在类CWnd中,而且是类CWnd的第一个数据成员,先看一下MSDN的解析:  The handle of the Windows window attached to this CWnd. The m_hWnd data member is a public ...
  • windows程序开发中常用的定义,包括各种句柄类型,windows框架下的消息类型,位图应用

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 30,093
精华内容 12,037
关键字:

hwnd是什么数据类型