API和Delphi的句柄都有哪些种类, 他们之间在概念上和应用上有什么区别, 如何转化? 请问哪里有详细讲述句柄的文章?谢谢!
解决方案 »
- 请问有谁知道怎样修改VirtualStringTree绑定的数据
- delphi调用c写的动态库,怎么调用这个函数,谢谢
- 怎样从文本文件中取一段文本?
- 请教各位了,这个WIN32 API应该怎么用,那些参数应该怎么填写,谢谢
- 谁有通过网络及时截取别的计算机的图象,并分成4屏9屏...之类的代码?原理是通过压缩图象,再发送!i need your help!
- 定时屏幕取词
- 请问用FLASH做成的菜单能在DELPHI环境中使用吗?
- 各位兄弟、姐妹,谁能给我一个超星的账号阿!!谢谢了
- 求Delphi5.0企业版
- delphi 7 DLL 调用问题,请教!
- 屏幕刷新时闪烁的问题,在线守候
- 菜鸟求知一二 Delphi-->Excel
int SetBkMode(
HDC hdc, // handle of device context
int iBkMode // flag specifying background mode
);
我用SetBkMode(DBGrid1.Handle, TRANSPARENT); 就没反映. 函数要求的是HDC类型, 而DBGrid1.Handle返回的是HWND类型, 类型不匹配.WindowsAPI中像HDC, HWND这样的句柄都有哪些, 它们都有什么区别, 相互之间又应该如何转化? Delphi中用THandle把它们都包括进去了, 可使用起来还是显得不太兼容呀, 例如本例. 请高手能借这个问题展开, 讲讲API中的句柄... (谢谢了! 发言就有分! 分不够再补!)
THandle也是长整型,你找它的定义就知道了
我有个同学说得很有意思,说句柄就是那些东西的把柄,拿住了那些把柄就可以用这些东西干活了。Windows 的句柄都是无符号整形数,不管是HDC 还是窗体的Handle,所以Delphi 直接用一个THandle就说完了。在Windef.h 里面有这样一个定义:DECLARE_HANDLE(HDC);这个DECLARE_HANDLE 是一个宏,在Winnt.h 下我们可以看到,它的含义是
#define DECLARE_HANDLE(name) typedef HANDLE name而HANDLE 是什么呢?
typedef void *HANDLE;这样我们就可以看到,其实一个HDC 不过就是一个指针而已,或者我们可以说,HDC不过是32 位的无符号整数而已。同样的,我们也可以看到,HWND 是一个16位的无符号整形数。这样的描述,不知道对你有没有帮助
虽然也是handle但是和一般说的句柄是不同的。
同意huojiehai(海天子)说的,handle是系统的标识,据我理解可能映射到进程地址。
HDC在这点上和HWND不同
THandle则没有多大限制。文件句柄,钩子句柄等都可以用THandle