VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 732|回复: 7

TabControl 相对应的窗口中无法显示WebBrowser控件

[复制链接]
82_avatar_middle
最佳答案
0 
在线会员 发表于 2019-4-19 17:48:45 | 显示全部楼层 |阅读模式
3驿站币
在TabControl的标签页相对应的窗口中添加WebBrowser控件后,界面无法显示WebBrowser控件,但是WebBrowser控件的功能却能够正常使用。这说明WebBrowser控件添加是成功的,但是WebBrowser控件为什么不能显示呢?应该如何做才能让WebBrowser控件在标签页相对应的窗口中显示呢?
谢谢~~

最佳答案

查看完整内容

这是我那个例子,看在你机器上能不能用,不能用,讲的都是白讲。 运行环境window10,编译vs2015. 它直接是能显示地。




上一篇:在win7里打印程序Spool32.exe 是否被spoolsv.exe
下一篇:VS编译器点生成,只显示最新1,不显示成功1
75_avatar_middle
最佳答案
0 
在线会员 发表于 2019-4-19 17:48:46 | 显示全部楼层
这是我那个例子 TabControl 相对应的窗口中无法显示WebBrowser控件 MFCTabWeb.rar (220.5 KB, 下载次数: 3)
75_avatar_middle
最佳答案
0 
在线会员 发表于 2019-4-20 18:02:29 | 显示全部楼层
本帖最后由 xx_player 于 2019-4-20 19:21 编辑

假设你tabcontrol绑定变量m_tab,WebBrowser绑定变量为m_ie,在基于对话框测试,则OnInitDialog()函数里添加
        m_tab.InsertItem(0, L"百度");
        m_tab.InsertItem(1, L"搜狐");
        m_tab.InsertItem(2, L"凤凰");
        m_tab.InsertItem(3, L"VC驿站");
        m_tab.SetCurSel(0);
        CWnd*pWnd = m_tab.GetWindow(GW_HWNDFIRST);
        RECT rc;
        m_tab.GetWindowRect(&rc);
        m_tab.AdjustRect(TRUE, &rc);
        m_ie.SetParent(pWnd);
        m_ie.SetWindowPos(pWnd,
                rc.left, rc.top,
                rc.right-rc.left,rc.bottom-rc.top,
                SWP_SHOWWINDOW);
        VARIANT url;
        url.vt=  VT_BSTR;
        url.bstrVal = SysAllocString(L"http://www.baidu.com");
        m_ie.Navigate2(&url, 0,0,0,0);

m_tab响应事件OnTcnSelchangeTab1(NMHDR *pNMHDR, LRESULT *pResult)里添加
        int CurSel = m_tab.GetCurSel();
        VARIANT url;
        url.vt = VT_BSTR;
        url.bstrVal = L"http://www.baidu.com";
        switch (CurSel)
        {
        case 0:url.bstrVal = L"http://www.baidu.com";m_ie.Navigate2(&url,0,0,0,0);break;
        case 1:url.bstrVal = L"http://www.sohu.com";m_ie.Navigate2(&url, 0,0, 0,0);break;
        case 2:url.bstrVal = L"http://www.ifeng.com";m_ie.Navigate2(&url,0, 0, 0,0);break;
        case 3:url.bstrVal = L"https://www.cctry.com";m_ie.Navigate2(&url,0, 0, 0,0);break;
        }
即可。
如果tabcontrol页中不止一个控件,就建对话框的方法 ,把控件分类都放在不同的对话框里,然后
在也改变响应事件中,显示该显示的对话框。把其它的对话框窗口都隐藏。

注意:
  要用ctrl+d反复键调整tab顺序,把tabcontrol摆在序号1,最底层,并把webBrowser窗体调整与tab客户区一样大小。
TabControl 相对应的窗口中无法显示WebBrowser控件






82_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2019-4-21 07:54:46 | 显示全部楼层
xx_player 发表于 2019-4-20 18:02
假设你tabcontrol绑定变量m_tab,WebBrowser绑定变量为m_ie,在基于对话框测试,则OnInitDialog()函数里添加
...

非常感谢!我的问题可能没有描述清楚。我的意思就像您说的那样。我的TabControl页中不止一个控件,用建对话框的方法 ,把控件分类都放在不同的对话框里,每个分页对话框中添加一个WebBrowser控件和Button控件,然后在也改变响应事件中,显示该显示的对话框。把其它的对话框窗口都隐藏。这样在分页对话框中Button控件能够正常显示,但是WebBrowser控件却显示不出来。
75_avatar_middle
最佳答案
0 
在线会员 发表于 2019-4-22 15:22:43 | 显示全部楼层
那就这样试试,强制显示 m_ie.ShowWindow(SW_SHOW);如果不行就把的父改为桌面m_ie.SetParent(NULL);再强制m_ie.ShowWindow(SW_SHOW);还不行,再m_ie.SetForegroundWindow();让它处于顶级窗口.还不出来,就这样
        m_ie.MoveWindow(0, 0, 640, 480, 1);
        m_ie.SetForegroundWindow();
        m_ie.SetParent(NULL);
让它跳出tab,指定大小直接裸显。还不行,就不用mfc,打开c#,拖WebBrowser看它显不显,显示,说明还有救。
再回到MFC,新建对话框,重新拖一个看它在纯环境显不显,窗口弄大点,还是不显,
那就真的没办法了。去把.netFrame卸了,重新装一下。控件本身不正常。
投降吧。
TabControl 相对应的窗口中无法显示WebBrowser控件
82_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2019-4-22 18:11:05 | 显示全部楼层
xx_player 发表于 2019-4-19 17:48
这是我那个例子,看在你机器上能不能用,不能用,讲的都是白讲。
运行环境window10,编译vs2015.
它直接是 ...

谢谢谢谢!非常感谢!是我的问题。
75_avatar_middle
最佳答案
0 
在线会员 发表于 2019-4-22 21:39:32 | 显示全部楼层
不过下午我专心搞了个页控件对话框地,有问题悬着不舒服。虽然问题已经结束,还是发上来,与前面的有点区别。那个.SetWindowPos在对话框里工作不正常。
页控件分4页,每页绑一个无模式对话框,对话框属性设为子窗口,绑定变量m_page1,m_page2,m_page3,m_page4,单元独立。
表示各种情况都考虑了,不是耍赖弄一个糊弄。
OnInitDialog()这样加
        m_tab.InsertItem(0, L"列表视页");
        m_tab.InsertItem(1, L"树形页");
        m_tab.InsertItem(2, L"百度页");
        m_tab.InsertItem(3, L"VC论坛页");

        CWnd*pCWnd = m_tab.GetWindow(GW_HWNDFIRST);
        m_page1.Create(IDD_DIALOG1, pCWnd);
        m_page2.Create(IDD_DIALOG2, pCWnd);
        m_page3.Create(IDD_DIALOG3, pCWnd);
        m_page4.Create(IDD_DIALOG4, pCWnd);
        m_page1.ShowWindow(SW_SHOW);
        //初始化各页控件
        //列表视
        TCHAR*s[] = {
                L"列名1",
                L"列名2",
                L"列名3",
                L"列名4",
                L"列名5",
        };
        LVCOLUMN lvc;
        for (int i = 0;i < 5;i++) {
                lvc.mask = LVCF_TEXT | LVCF_WIDTH;
                lvc.cx = 100;
                lvc.pszText = s;
                m_page1.m_listview.InsertColumn(i, &lvc);
        }
        //树
        HTREEITEM htreeitem = m_page2.m_treeview.InsertItem(L"根1");
        m_page2.m_treeview.InsertItem(L"节点1", htreeitem);
        m_page2.m_treeview.InsertItem(L"节点2", htreeitem);
        m_page2.m_treeview.InsertItem(L"节点3", htreeitem);
        //浏览器
        VARIANT url;
        url.vt = VT_BSTR;
        url.bstrVal = SysAllocString(L"http://www.baidu.com");
        m_page3.m_ie.Navigate2(&url, 0, 0, 0, 0);
        url.vt = VT_BSTR;
        url.bstrVal = SysAllocString(L"https://www.cctry.com");
        m_page4.m_ie.Navigate2(&url, 0, 0, 0, 0);
        RECT rc;
        m_tab.GetWindowRect(&rc);
        m_tab.AdjustRect(TRUE, &rc);
        m_page1.MoveWindow(&rc,TRUE);
        m_page2.MoveWindow(&rc, TRUE);
        m_page3.MoveWindow(&rc, TRUE);
        m_page4.MoveWindow(&rc, TRUE);
        m_tab.SetCurSel(0);

OnSelchangeTab1响应
        int CurSel = m_tab.GetCurSel();
        m_page1.ShowWindow(SW_HIDE);
        m_page2.ShowWindow(SW_HIDE);
        m_page3.ShowWindow(SW_HIDE);
        m_page4.ShowWindow(SW_HIDE);
        CWnd*pCWnd = m_tab.GetWindow(GW_HWNDFIRST);
        switch (CurSel)
        {
        case 0:m_page1.ShowWindow(SW_SHOW);break;
        case 1:m_page2.ShowWindow(SW_SHOW);break;
        case 2:m_page3.ShowWindow(SW_SHOW);break;
        case 3:m_page4.ShowWindow(SW_SHOW);break;
        }

再增加一个析构函数
CMFCDlgTabWebDlg::~CMFCDlgTabWebDlg()
{
        m_page1.DestroyWindow();
        m_page2.DestroyWindow();
        m_page3.DestroyWindow();
        m_page4.DestroyWindow();
}

代码在这里 TabControl 相对应的窗口中无法显示WebBrowser控件 MFCDlgTabWeb.rar (225.95 KB, 下载次数: 3)
82_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2019-4-26 08:29:22 | 显示全部楼层
xx_player 发表于 2019-4-22 21:39
不过下午我专心搞了个页控件对话框地,有问题悬着不舒服。虽然问题已经结束,还是发上来,与前面的有点区别 ...

大赞 非常非常感谢
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号 )|网站地图wx_jqr

GMT+8, 2020-10-21 10:18

Powered by CcTry.CoM

© 2009-2020 cctry.com

快速回复 返回顶部 返回列表