日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > windows >内容正文

windows

windows程序设计之定义窗口句柄

發(fā)布時間:2024/8/1 windows 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 windows程序设计之定义窗口句柄 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

HWND ????????hwnd ;

什么叫做句柄呢?

句柄最原始的定義為typedef void *HANDLE;

就是一個指針,在32位windows中占用4個字節(jié)?,它指向內(nèi)存的大小由它的類型決定。函數(shù)用句柄來傳遞數(shù)據(jù)。句柄在winnt.h中是這么定義的:

#ifdef STRICT typedef void *HANDLE; 這就是HANDLE的定義 #define DECLARE_HANDLE(name) struct name##__ { int unused; };typedef struct name##__ *name #else typedef PVOID HANDLE; #define DECLARE_HANDLE(name) typedef HANDLE name #endif typedef HANDLE *PHANDLE;?

STRICT修飾符的意思是變量類型是否要求嚴(yán)格定義。在這里,我們可以看到HANDLE其實就是一個void類型的指針。這樣有什么用呢?學(xué)過c/c++語言的人都知道,void類型的指針可以通過強制類型轉(zhuǎn)換變?yōu)槿魏晤愋偷闹羔?#xff0c;使用最靈活。在很多情況下,句柄是一個對象的指針,或者說是地址,一個對象的地址。比如對于分配的一個內(nèi)存塊(對象),它的句柄就是它的首地址,這沒什么問題。但是這并不總是成立的,對于沒有對象意義的句柄尤其如此。這就取決與系統(tǒng)的定義了。比如系統(tǒng)鉤子的類型HHOOK,說它是地址就沒有任何意義。對于窗口句柄也是如此。在這些情況下,我們可以把句柄理解為某事物在系統(tǒng)該類事物列表中的ID。???

下面是windows應(yīng)用程序的常用句柄類型:

句柄類型

說明

句柄類型

說明

HANDLE

一般句柄類型

HICON

圖標(biāo)句柄類型

HWND

窗口句柄類型

HCURSOR

光標(biāo)句柄類型

HINSTANCE

程序?qū)嵗浔?/p>

HBRUSH

畫刷句柄類型

HDC

設(shè)備描述句柄

HPEN

畫筆句柄類型

HMENU

菜單句柄類型

HFONT

字體句柄類型

HBITMAP

位圖句柄類型

HFILE

文件句柄類型

最基本的句柄定義為HANDLE 其實就是void*類型或者是int 類型。

窗口句柄hwnd用于保存CreateWindow返回的窗口句柄。CreateWindow會根據(jù)應(yīng)用程序名szAppName所對應(yīng)的窗口對象類來創(chuàng)建一個窗口,并將該窗口的句柄返回。

注意窗口句柄和應(yīng)用程序句柄是有區(qū)別的。

窗口句柄是用戶接口,即界面的句柄,用戶可以通過這個句柄來控制界面的輸入或輸出。比如從界面獲得控件的輸入值,或在界面上繪制圖形等。

而應(yīng)用程序?qū)嵗浔强刂普麄€應(yīng)用程序的。

?

總結(jié)

以上是生活随笔為你收集整理的windows程序设计之定义窗口句柄的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。