应该是可以直接用m_hWnd的,他们就应该是相等的,不过用函数更安全一点?关于FromHandle,MSDN里说:
The pointer may be temporary and should not be stored for later use.
我以前曾经用过FromHandle,结果存起来用的二次就出错,
后来改成Attach就好了,呵呵
The pointer may be temporary and should not be stored for later use.
我以前曾经用过FromHandle,结果存起来用的二次就出错,
后来改成Attach就好了,呵呵
解决方案 »
- SDI程序,CCommandBar问题
- 非窗口类响应OnTimer消息遇到的问题
- 急问!mciSendCommand支持哪些视频格式?另,如何进行音视频的剪辑?
- 如何修改"打开文件"对话框显示时的位置和大小???
- 客户程序访问远程COM+组件时出现“拒绝访问”(在一次断电后出现,之前正常,在另外一套相同环境中也正常)
- 如何注册ActiveX控件?
- 如何用PlaySound播放加入到资源中的声音文件
- 请大家帮帮我
- 我快疯了!有谁可以帮我看看!!100分送上!!!
- 寻找例程:怎样把一个文本类的文件读出来一行一行地放到CListCtrl的Item中?
- 关于CListCtrl类的问题
- 如何用编程实现telnet,即:比如我
再说说FromHandle和Attach的区别吧,MFC里面有很多类都同时具有这两个成员函数,它们的区别是:有Attach成员函数的类,一般都有一个成员变量对应于API编程中的HANDLE(如CDC的m_hDC,CWnd的m_hWnd),类实际上是封装了于这个句柄有关的所有操作,一个类生成一个新对象的时候这个句柄是无效的,要获得这个句柄,可以有两个方法,一个是Create来创建,另一个就是用Attach()来与一个已有的句柄建立关联,实际上也就是给类的句柄成员变量赋值。而FromHandle()函数是用来从一个句柄得到封装了该句柄的类,如果该句柄没有被相应的类封装,那么函数将生成一个临时的对象并将句柄与该对象Attach(),然后返回对象的指针,需要注意的是FromHandle()返回的是一个临时的对象,不能保存使用。