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
);
ありがとう、