MFC 瀏覽器 去除滾動條

2022-02-03 06:03:31 字數 1463 閱讀 9482

用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...