获取对话框中的控件指针
2010-05-13 11:09
357 查看
1. 采用GetDlgControl获取控件指针;
2. 通过AtlAxGetControl获取控件指针;
3. 以上均为ATL工程, 下面介绍MFC下的获取
//以IE控件为例 CComPtr<IWebBrowser2> spIWebBrowser2; GetDlgControl(IDC_EXPLORER,IID_IWebBrowser2,(void **)&spIWebBrowser2);
2. 通过AtlAxGetControl获取控件指针;
//GetDlgControl函数封装了以下实现 HWND hWnd; HRESULT hr; CComPtr<IUnknown> spUnk; CComPtr<IWebBrowser2> spWebBrowser2; hWnd = GetDlgItem(IDC_EXPLORER); if (hWnd != NULL){ hr = AtlAxGetControl(hWnd, &spUnk); if (SUCCEEDED(hr)) { hr = spUnk ->QueryInterface(IID_IWebBrowser2, (void **)&m_spWebBrowser2); } }
3. 以上均为ATL工程, 下面介绍MFC下的获取
CComPtr<IWebBrowser2> m_spWebBrowser2; { //直接创建IWebBrowser2接口 CoInitialize(NULL); //CLSID_WebBrowser, 是微软web预览控件的实现类的id,它同过属性Parent来得到窗口句柄,因为控件没法知道它被放在哪个容器里,所以不会实现HWND属性! CoCreateInstance(CLSID_WebBrowser, NULL, CLSCTX_INPROC, IID_IWebBrowser2, (void**)&m_spWebBrowser2); //CLSID_InternetExplorer,是微软ie浏览器自动化实现类的id,它通过属性HWND得到!因为得到句柄一定封装好了 CoCreateInstance(CLSID_InternetExplorer, NULL,CLSCTX_INPROC,IID_IWebBrowser2,(void**)&m_pWebBrowser2); } //MFC下插入Web Browser控件, 获取IWebBrowser int GetDlgIEControl(int nID) { if (m_spWebBrowser2 == NULL){ CWnd *pCWnd = GetDlgItem(IDC_EXPLORER); if (pCWnd != NULL){ HRESULT hr; CComPtr<IUnknown> spUnk; spUnk = NULL; //using atl //hr = AtlAxGetControl(pCWnd->GetSafeHwnd(), &spUnk); spUnk = pCWnd ->GetControlUnknown(); if (spUnk != NULL) { hr = spUnk ->QueryInterface(IID_IWebBrowser2, (void **)&m_spWebBrowser2); return 1; } } } return 0; }
相关文章推荐
- 获取对话框中的控件指针
- 获取对话框中的控件指针
- VC 获取控件在对话框中的坐标
- 如何在对话框中获取视图指针?
- VC如何获取对话框中控件的坐标
- MFC 获取控件在对话框上的坐标
- GetDlgItemInt获取对话框控件数值
- 获取对话框的指针--全局变量的使用
- MFC 获取当前对话框生成的对象指针
- VC 获取控件在对话框中的坐标
- 获取鼠标在Picture控件中的坐标,并显示到对话框的状态栏中
- VC如何获取对话框中控件的区域
- mfc 获取主对话框指针(在全局函数中使用对话框类函数)
- VC 获取控件在对话框中的坐标
- MFC对话框应用程序 如何在对话框窗口显示前获取窗口(控件)的屏幕坐标位置
- 获取鼠标在Picture控件中的坐标,并显示到对话框的状态栏中
- 获取Ribbon控件指针MFC10.0
- 获取对话框的大小及各控件的位置点(像素点)
- 获取对话框句柄 对话框指针
- 获取对话框的指针--全局变量的使用