请问窗体句柄和指针的各自适用范围?
我是一名新手,在程序中看到调用窗体某些功能时有时是用窗体句柄的,有时是用窗体指针的,请问他们之间有什么区别吗?在什么时候应该用句柄,什么时候应该用指针?
谢谢
问题点数:20、回复次数:3Top
1 楼smint(smint)回复于 2001-05-19 09:16:00 得分 2
函数不是有说明吗?
CWnd *
和HWND?
很明白的Top
2 楼leesungyong(xiaoshan)回复于 2001-05-19 09:32:00 得分 12
HWND 是HANDLE 这是由Windows系统管理的当窗口创建时,系统会分配一个HANDLE给这个窗口,HANDLE是32位无符号整数,是唯一的窗口标识;
CWnd*是C++对象的指针,当对象被创建时,该对象就拥有了一个指向该对象的指针。CWnd对象和HWND对象本来是没有任何关系的,当你调用CreateWindow函数或调用Attach函数时,CWnd对象把HWND对象绑定起来,这样系统的窗口和CWnd类对象就一一对应起来。
CWnd*和HWND使用上的区别是
Windows API使用的是HWND,比如 MoveWindow(HWND hWnd, .....)
MFC中提供的函数使用的是CWnd,比如 CWnd* GetParantFrame()
还有HWND是属于HANDLE类型的,在Windows中除了HWND之外还有各种HANDLE,比如GDI对象,文件对象等等。它们在系统中是唯一的,Windows通过HANDLE管理各种Windows对象。
Top
3 楼ahr(电磁波)回复于 2001-05-19 09:37:00 得分 6
SDK都是用Handle,而在MFC中多使用指针Top




