0

我正在尝试使用 Visual c++(x64) 在我自己的创建窗口中呈现一个 html 文件。我已经完成了所有事情,我只需要一些机制来在我自己的窗口中显示 html 文件。我将 html 文件内容存储在缓冲区中(我很确定这一点,因为我的缓冲区中有相同的 html 代码,我可以在什么时候看到我在记事本中打开该文件,所以我唯一要做的就是找到一种在我的窗口中呈现该 html 文件的方法)

在谷歌上的随机搜索中,我知道我需要托管一个 activex 控件,但我不知道该怎么做。是的,互联网上有一些可用的示例,但它们不适用于 Visual c++(x64 MFC 应用程序) .

我想到的是(1.)我将创建一个对话框使用 -

     HINSTANCE   g_hInst2     = NULL;
                    m_hwndPreview= CreateDialogParam( g_hInst2,MAKEINTRESOURCE(IDD_HTML_DIALOG), m_hwndParent,(DLGPROC)DialogProc, (LPARAM)this);
        //I have not implemented the part below (its just idea that what should i do?? please correct me
// if my idea is wrong)I have not implemented it because when i create dialog using CreateDialogParam(...)  when i debug it i get m_hwndPreview=0000000000000 
                // and once if m_hwndPreview is done successfully i have assumed the code below in my
// mind to achieve my target. please correct me if i am wrong ??

                    CWebBrowser2 * pBrowse = (CWebBrowser2 *) GetDlgItem(IDC_EXPLORER1);
                    COleVariant sLoc("http://localhost");
                    pBrowse->Navigate2(sLoc, NULL, NULL, NULL, NULL);
            //after that
                if (SUCCEEDED(hr))
                {
                    ShowWindow(m_hwndPreview, SW_SHOW);
                    UpdateWindow( m_hwndPreview );
                }

我对吗 ??

请回答两个问题 (1.) 为什么 m_hwndPreview=00000000000 ?? 因为我使用资源编辑器创建了一个对话框(IDD_HTML_DIALOG)并插入了一个 activex 控件(Microsoft Web 浏览器)并且它成功完成,因为我可以在我的文件 resource.h 中看到(我有#define IDC_EXPLORER1 1046)所以它确定它已经完成。g_hInst2 中可能存在一些问题。我没有正确地理解它。(2.) 我实现目标的方法是否正确?如果我 _hwndPreview 成功完成,那么我假设的代码会起作用吗?我的方法正确吗?

4

0 回答 0