用mfc寫乙個瀏覽器,我現在知道的方法有:
1.在dialog上面新增乙個webbrowser activex控制項,這個方法我在上乙個文章上面的有說,這個方法做出來的瀏覽器視窗有滾動條,且,我不知道怎麼把它給搞掉--!
2.建立基於cdhtmldialog的工程,這個方法我在上乙個文章上面的也有說,這種方法做出來的瀏覽器視窗直接就沒有滾動條了,可是它是基於dialog資源做的,不符合要求
3.使用chtmlview方式來做,關於這個,請參考這個文章:
把我實現的過程大概的說一下:
1.先建立乙個基於dialog的視窗(基類不是cdhtmldialog,而是cdialog),然後再新增乙個statictext(不一定非要是這個控制項,其它控制項也行的)的控制項在dialog上面.
2.建立乙個類,父類是chtmlview.
class cmyhtmlview : public chtmlview
3.實際上chtmlview這個類的內部就是使用webbrowser activex來實現瀏覽器的(我上面的說的第一種方式的封裝體)
4.新增方法:
////根據dialog上面的控制項來建立乙個顯示瀏覽器的視窗
//bool cmyhtmlview::createfromstatic(uint nid, cwnd
*pparent)
crect rc;
wndstatic.getwindowrect(
&rc);
pparent
->
screentoclient(
&rc);
wndstatic.destroywindow();
return
create(null, null, (ws_child
|ws_visible), rc, pparent, nid, null);}//
//重寫這個函式就是去掉滾動條
//hresult cmyhtmlview::ongethostinfo(dochostuiinfo
*pinfo)
return
s_ok;
}int
cmyhtmlview::onmouseactivate(cwnd
*pdesktopwnd, uint nhittest, uint message)
void
cmyhtmlview::ondestroy()
cwnd::ondestroy();}//
//不覆蓋這個函式,退出時會有堆損壞的現像
//不要新增任何**
void
cmyhtmlview::postncdestroy()
5.然後在dialog的oninitdialog()方法中新增:
bool cexplorerdlg::oninitdialog()
執行一下看看,滾動條沒了!^_^
瀏覽器滾動條
做 時發現登入成功後瀏覽器滾動條消失無法滾動頁面 通過觀察和除錯,發現是強制隱藏了bootstrap的模態框後,body的overflow變為了hidden,同時也多了乙個17px的右內邊距,無法呼叫出垂直滾動條,解決方案 隱藏模態框的同時設定body的overflow為scroll,同時取消右內邊...
iframe滾動條充當瀏覽器滾動條
在做部落格專案的時候,使用了iframe,方便根據選擇的文章類別切換顯示的內容,但是文章一般都有很多,通過bootstrap的 列表的方式顯示的話,iframe是一定會出現滾動條的,特別是我新增了乙個 滾動條觸底之後動態載入更多的文章 的功能。這樣頁面上就會有兩個滾動條,特別奇怪。在網上學習了一些之...
瀏覽器滾動條相關
先去mdn 檢視這兩個概念 scrollheight 以及 clientheight 1,判斷是否存在滾動條 if element.scrollheight element.clientheight 0 2,判斷乙個容器滾動條,沒有在最上面,怎麼判斷 if element.scrolltop 0 3...