Отключение полос прокрутки в WebKit (плоский режим) - PullRequest
2 голосов
/ 31 мая 2010

Я встраиваю WebKit в приложение Windows C ++. Я использую Каирский порт. Работает нормально.

Я хотел бы отключить полосы прокрутки, которые появляются, когда есть больше данных, которые может отображать клиентская область. Как и 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 Ответ

1 голос
/ 05 октября 2010

Вы восстанавливаете Каирский порт webkit?

Если это так, вы можете изменить WebCore / css / html4.css и WebCore / css / quirks.css , чтобы включить «overflow: hidden» в тег body.

Если нет, боюсь, что единственный способ отключить полосу прокрутки - пройти через javascript.

...