2

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
);

ありがとう、

4

1 に答える 1

1

webkit の Cairo ポートを再構築していますか?

その場合、WebCore/css/html4.cssWebCore/css/quirks.cssを変更して、body タグに「overflow: hidden」を含めることができます。

そうでない場合、スクロールバーを無効にする唯一の方法はjavascriptを通過することだと思います。

于 2010-10-05T18:39:50.197 に答える