2010-05-31 39 views
2

我將WebKit嵌入Windows C++應用程序中。我正在使用開羅港。它工作正常。禁用WebKit中的滾動條(平面框架模式)

我想禁用客戶區可以顯示更多數據時出現的滾動條。像iPhone一樣,iPhone沒有滾動條,滾動的實現方式也不同。

如何以編程方式禁用滾動條,使用C++(無Javascript黑客)?


更新:

我試着打電話給HRESULT IWebFrame::setAllowsScrolling(BOOL flag)。爲了獲得IWebFrame接口,我打電話給HRESULT IWebView::mainFrame(IWebFrame **frame)。這似乎並不奏效。滾動條仍然出現。我究竟做錯了什麼?這不是我主要關注的主要框架嗎?


更新:

我試圖使平框的模式是這樣的:

IWebPreferences *Preferences; 
hr = pWebView->preferences(&Preferences); 
if (FAILED(hr)) 
    goto exit; 

IWebPreferencesPrivate *PrivatePreferences = 0; 
hr = Preferences->QueryInterface(IID_IWebPreferencesPrivate, (void **)&PrivatePreferences); 
if (FAILED(hr)) 
    goto exit; 
hr = PrivatePreferences->setFrameSetFlatteningEnabled(TRUE); 
if (FAILED(hr)) 
    goto exit; 

的代碼運行正常,但好像沒有什麼改變。我在這裏做錯了什麼?


更新:

我收到的建議創建主窗口的時候,我可能包括WS_VSCROLL。這種情況並非如此:

MainWindow = CreateWindow(
    WindowClass, 
    WindowTitle, 
    WS_OVERLAPPEDWINDOW, 
    CW_USEDEFAULT, 
    0, 
    iPhoneXRes + 16 + 20, 
    iPhoneYres + 110, 
    NULL, 
    NULL, 
    hInstance, 
    NULL 
); 

感謝,

回答

1

你重建的WebKit的開羅端口?

如果是這樣,你可以修改的WebCore/CSS/html4.css的WebCore/CSS/quirks.css包括 「溢出:隱藏」 在身上的標籤。

如果沒有,恐怕禁用滾動條的唯一方法就是通過javascript。