我是一个新手。
我使用MFC写了一个ActiveX控件,可是我怎么得到这个控件的窗口句柄呢,我在我自己的新增加的一个方法中使用了AfxGetApp()->m_pMainWnd->GetSafeHwnd(),可是返回值是NULL。请问我该如何获得这个控件的窗口句柄?

解决方案 »

  1.   

    ActiveX控件是没有窗口句柄的象IE中你看的Edit框,ScrollBar等等都是ActiveX控件,不过它们不是窗口
    根本没有窗口句柄
      

  2.   

    谢谢楼上几位。
    我现在是需要把一个SDK程序封装成为一个ActiveX控件,我需要获得一个主窗口的句柄。这个ActiveX控件是我自己用MFC向导生成的,这样做的控件是否有自己的窗口句柄?
      

  3.   

    请问如何使用m_hWnd?
    比如我在CxxxCtrl类中,我想得到窗口句柄,我使用
    AfxGetApp()->m_pMainWnd->m_hWnd;无法得到啊,执行的时候告诉我存取禁止。呵呵,比较着急
      

  4.   

    如果没有窗口句柄,我如何将这个应用程序封装成一个ActiveX控件呢?
    比如原来对应窗口句柄的操作,我要如何修改?
      

  5.   

    调用基类(COleControl)的GetHwnd成员函数
      

  6.   


    GetHwnd()返回NULL。哪位能够确定的告诉我我使用MFC向导生成的ActiveX控件到底有没有窗口句柄?
    如果有:如何获得这个句柄。
    如果没有:原来程序中对应主窗口句柄的操作如何修改?
      

  7.   

    to jiangsheng(蒋晟.MSMVP2004Jan)
    能否稍微详细一点,我初次接触制作ActiveX控件。8-(
    我如何在控件创建时获得控件的窗口句柄?谢谢。
      

  8.   

    不好意思,补充一下。
    我是需要在ActiveX控件内部获得这个控件的窗口句柄。不是要在使用时获得。
      

  9.   

    ActiveX控件内部是什么意思?COleControl的成员函数吗?那直接使用m_hWnd成员变量好了
      

  10.   

    窗口句柄肯定是有的,不过我也不知道怎么获得。可以有另一种方法假如你的控件叫做CTestCtrl
    那么你定义一个全局变量
    CTestCtrl*  g_pCtrl=NULL;然后重载CTestCtrl的OnCreate函数
    在函数体里
    g_pCtrl = this;这样在任意地方就可以使用g_pCtrl作为这个控件窗体本身了。