none
句柄?许多网上给出的解释,我晕了 不理解? RRS feed

  • 问题

  • 句柄?我在网上寻了好多,真不好理解,现在还是一头雾水,哪位高手能提供些解释?

    好像写程序时用不到句柄这个概念?在哪里用的,我看不到他的影子?

    2010年9月23日 7:18

答案

  • 我是这样理解的,不准确的地方请后面的人补充说明谢谢

    ——————————————————————————

     

    句柄是每个对象(对象包括程序里的不同组成部分)在生命周期的唯一标识符,比如在C#中我们操作自己程序的不同部分,我们使用到的就是不同部分对象的ID名来进行操作的,这个是面向对象编程的一个体现吧。

     

    如果是C语言中写的程序,要操作他的GUI对象,那么调用函数传递参数就是那个需要操作的对象的句柄了。我也觉得这个是面向过程编程的一个体现吧。

    • 已标记为答案 王基任 2010年9月23日 7:56
    2010年9月23日 7:49
  • Handle (句柄),是一个 32 位 (x64 为 64 位) 的整形指针,在 C++ 描述为 int*,HWND (Handle or Window)。MCF 中封装为 CWnd (窗口句柄),它用来唯一标识 Windows 中的系统资源,比如文件、Mutex、原子、进程、库、控件、注册表等等。句柄可以被衍生出多种类型,但其基本类型仍然是 int*。参考下面的类型。

    HWND = Handle of Window
    HMODULE = Handle of Module
    HICON = Handle of Icon
    HBITMAP = Handle of Bitmap
    HDC = Handle of Device Context
    HCOLOR = Handle of Color
    ...


    Mark Zhou
    • 已标记为答案 王基任 2010年9月26日 15:09
    2010年9月24日 9:56

全部回复

  • 我是这样理解的,不准确的地方请后面的人补充说明谢谢

    ——————————————————————————

     

    句柄是每个对象(对象包括程序里的不同组成部分)在生命周期的唯一标识符,比如在C#中我们操作自己程序的不同部分,我们使用到的就是不同部分对象的ID名来进行操作的,这个是面向对象编程的一个体现吧。

     

    如果是C语言中写的程序,要操作他的GUI对象,那么调用函数传递参数就是那个需要操作的对象的句柄了。我也觉得这个是面向过程编程的一个体现吧。

    • 已标记为答案 王基任 2010年9月23日 7:56
    2010年9月23日 7:49
  • Handle (句柄),是一个 32 位 (x64 为 64 位) 的整形指针,在 C++ 描述为 int*,HWND (Handle or Window)。MCF 中封装为 CWnd (窗口句柄),它用来唯一标识 Windows 中的系统资源,比如文件、Mutex、原子、进程、库、控件、注册表等等。句柄可以被衍生出多种类型,但其基本类型仍然是 int*。参考下面的类型。

    HWND = Handle of Window
    HMODULE = Handle of Module
    HICON = Handle of Icon
    HBITMAP = Handle of Bitmap
    HDC = Handle of Device Context
    HCOLOR = Handle of Color
    ...


    Mark Zhou
    • 已标记为答案 王基任 2010年9月26日 15:09
    2010年9月24日 9:56