关闭

无界面程序中使用ActiveX控件完成其功能

标签: nulldeleteobjectclassup
1235人阅读 评论(0) 收藏 举报
分类:

比如,需要用一些ActiveX控件,但程序本身无界面的情况下。

1)从CWnd类中派生CMyWindow
2)增加成员函数 HWND Create();
HWND CMyWindow::Create()
{
 //Register a window class
 LPCTSTR classname = 0;
 classname = AfxRegisterWndClass(0);

 //Create the window and return it's handle
 CWnd::CreateEx(NULL,classname,NULL,NULL,0,0,0,0,NULL,NULL);
 ASSERT(m_hWnd!=NULL);

 return m_hWnd;
}

3)重载virtual void PostNcDestroy();
void CMyWindow::PostNcDestroy()
{
 //clean up this object
 delete this;
}

这样使用:
1).h中声明CMyWindow*m_pWnd;
2)初始化:
 m_pWnd = new CMyWindow;
 HWND hwndTarget = m_pWnd->Create();
3)销毁
m_pWnd->DestroyWindow();


该类不可见,可以包含一些ActiveX控件。
如果要相应ActiveX的事件,则
.h中
 DECLARE_EVENTSINK_MAP()
.cpp中
BEGIN_EVENTSINK_MAP(CMyWindow, CWnd)
  ON_EVENT(CMyWindow, CONTROL_ID, 2, OnNewImageCamimage, VTS_NONE)
END_EVENTSINK_MAP()

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:185660次
    • 积分:2320
    • 等级:
    • 排名:第16145名
    • 原创:33篇
    • 转载:37篇
    • 译文:0篇
    • 评论:107条
    最新评论