0

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

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

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

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

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

假设我在 MainDialog 的范围内,请说:

LRESULT CMainDialog::OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)

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

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

对不起,如果这听起来有点乱,但我真的在 ATL 上苦苦挣扎。

谢谢你。

4

1 回答 1

0

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

然后使用这样的东西:

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);
于 2013-05-12T13:48:18.687 回答