我将 WebKit 嵌入到 Windows C++ 应用程序中。我正在使用开罗港口。它工作正常。
当客户区可以显示更多数据时,我想禁用出现的滚动条。和 iPhone 一样,iPhone 没有滚动条,滚动的实现方式不同。
如何在 C++ 中以编程方式禁用滚动条(无 Javascript hack)?
更新:
我试着打电话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
);
谢谢,