首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从ATL对话框正确访问ATL控件?

如何从ATL对话框正确访问ATL控件?
EN

Stack Overflow用户
提问于 2013-05-08 13:18:57
回答 1查看 357关注 0票数 0

我有一个MSVC 2010解决方案,包含2个项目:

  • ATL DLL项目,它包含DHTML控件(名为DHTMLControl,它几乎是由向导构建的)。我想我可以把这个控制放在第二个项目中。
  • 包含主对话框(CMainDialog)的ATL项目,也是由向导创建的。

我设法将DHTMLControl添加到对话框中:

  1. 将DHTMLControl添加到工具箱中
  2. 将其拖动到资源视图中的主对话框中。
  3. 从工具箱中删除DHTMLControl (以避免生成时的访问拒绝)

但是,我的问题是我不知道如何使用这个控件!

假设我在MainDialog的范围内,可以这样说:

代码语言:javascript
复制
LRESULT CMainDialog::OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)

调用DHTMLControl方法的正确方法是什么?比如说,在按下主对话框上的按钮后,我想导航到另一个url或类似的地方。

如何获得指向DHTMLControl (CDHTMLControl )的指针/引用?IDHTMLControl?)在CMainDialog类中吗?

对不起,如果这听起来有点混乱,但我真的在与ATL斗争。

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-12 13:48:18

将生成的_i.h包含到对话框的标题中(不要包含实际控件的标题--它不是要包含的)。

然后用这样的方法:

代码语言:javascript
复制
CComPtr<IDHTMLControl> ptr;
HRESULT hr = GetDlgControl(IDC_DHTML_CONTROL, IID_IDHTMLControl, (void**)&ptr);

BSTR url = SysAllocString(L"http://example.com/");
// Call control's prop method
ptr->put_Url(url);
SysFreeString(url);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16441811

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档