CWnd * 和 HWnd 有什么区别?不都是一个窗口的标识么? 我的理解是CWnd*是MFC的, HWnd是SDK的, 就好像UINT和unsigned int`~~~~ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 今天已经又一个这个问题了。再说一遍吧。HWND用来表示Windows对象,具体是指Windows窗口对象,是系统的一种对象。CWnd是用来表示C++类对象的,它用来封装Windows窗口对象,它又一个成员m_hWnd是用来保存Windows对象。 有了mfc,很多操作都由句柄变为了指针在编程的时候,可以体会到得到指针比得到句柄方便 一个是类的指针,一个是句柄。windows为了安全考虑,有些对象不让你随便改动,而在创建的时候给你一个句柄,让你透过句柄来进行操作。网上有一段话:举个通俗的例子,比如你考上了大学,入学后,学校(操作系统)会给你一个学生证号。注意,这个号码是学校指定的,你无法自选。有了这个号码(学生证,假设一证多用)享受学校提供的服务:如你就可以去图书馆借书,去食堂吃饭,去教室上课等等。但你不能到食堂里买啤酒,因为学校不允许这种服务。而在计算机中系统提供的服务就是API调用,你有了HANDLE,就可以理直气壮地向系统提出调用API的服务。而指针的权力就大多了,有了指针你可以到处去喝酒,打架,学校(操作系统)管不着,所以句柄和指针的区别在于句柄只能调用系统提供的服务。而句柄虽然是一个能相互区别的号码,但与我们普通的ID号又有区别,普通的ID号是可以由程序员自己定义的,而句柄不行,它是对象生成时系统指定的,是为了区别系统中存在的各个对象,这个句柄不是由程序员符给的,而是系统分配的。小糊涂仙补充一点,如果说句柄是学号的话,指针就是钱,嘿嘿,有了钱就可以到小卖部\食堂去买啤酒喝了. 在补充一点CWND类中有一个成员变量m_hwnd,就是一个句柄。 关闭程序后报错 通用控件自绘问题 关于CDC的这段程序,哪位大哥给看看错误 LNK4204连接错误 如何改变tabctrl的背景颜色(不是标签) 稀奇古怪的问题:调试没错,运行出错???? 请教:在VB中引用刚刚开发的DCOM服务器端的类时,出现问题。 DSOFramer.ocx 如何代码设置文档显示比例 寻求高质量的winsock程序源码 高分相送 用GDI+客户区显示图片出错,希望高手指点 sdk中“窗口“和“视口“有什么区别? 我生成了一个基于dialog的工程。请问怎样改变窗体的颜色,并把窗体设为全屏?谢谢!!!
HWND用来表示Windows对象,具体是指Windows窗口对象,是系统的一种对象。
CWnd是用来表示C++类对象的,它用来封装Windows窗口对象,它又一个成员m_hWnd是用来保存Windows对象。
在编程的时候,可以体会到得到指针比得到句柄方便
windows为了安全考虑,有些对象不让你随便改动,而在创建的时候给你一个句柄,让你透过句柄来进行操作。网上有一段话:
举个通俗的例子,比如你考上了大学,入学后,学校(操作系统)会给你一个学生
证号。注意,这个号码是学校指定的,你无法自选。有了这个号码(学生证,假设一证多用)
享受学校提供的服务:如你就可以去图书馆借书,去食堂吃饭,去教室上课等等。但你不能
到食堂里买啤酒,因为学校不允许这种服务。而在计算机中系统提供的服务就是API调用,
你有了HANDLE,就可以理直气壮地向系统提出调用API的服务。
而指针的权力就大多了,有了指针你可以到处去喝酒,打架,学校(操作系统)管不着,所以
句柄和指针的区别在于句柄只能调用系统提供的服务。而句柄虽然是一个能相互区别的号码,
但与我们普通的ID号又有区别,普通的ID号是可以由程序员自己定义的,而句柄不行,它是
对象生成时系统指定的,是为了区别系统中存在的各个对象,这个句柄不是由程序员符给的,而是系统分配的。小糊涂仙补充一点,如果说句柄是学号的话,指针就是钱,嘿嘿,有了钱就可以到小卖部\食堂去买啤酒喝了. 在补充一点CWND类中有一个成员变量m_hwnd,就是一个句柄。