1

TWebBrowser にモードレスの印刷ダイアログ ボックスを表示させる方法はたくさんありますが、モーダルな印刷ダイアログ ボックスを表示するにはどうすればよいでしょうか? HTMLページを印刷したいので、モーダルダイアログが必要です。

これに関するあなたのアイデアを本当に感謝します。

ありがとう!

4

2 に答える 2

1

モードレス ダイアログを表示する方法がたくさんある理由が思いつきません。モードレス印刷ダイアログが表示されている間、Web ブラウザーとの対話を続行する必要があるのはなぜですか?

プログラムで印刷を開始したいが、ユーザーがプリンターを選択する必要がある場合は、次を使用します。

ExecWB(OLE_CMDID_PRINT, OLECMDEXECOPT_PROMPTUSER); 
于 2010-03-22T18:06:16.743 に答える
0

ユーレカ!私はそれを解決しました。

方法は次のとおりです。

モードレス印刷ダイアログを表示すると、Delphi でフォームの呼び出しを無効にできます。次に、OnCommandStateChange イベントを使用して、ユーザーが [印刷] ダイアログを印刷またはキャンセルしたことを検出できます。

コード例:

  WebBrowser1.OnCommandStateChange:=WebBrowser1CommandStateChange;
  WebBrowser1.ControlInterface.ExecWB(OLECMDID_PRINT, OLECMDEXECOPT_PROMPTUSER,
    vaIn, vaOut);

procedure TForm1.WebBrowser1CommandStateChange(Sender: TObject; Command:
    Integer; Enable: WordBool);
begin
  if Enabled then
    Enabled:=false
  else begin
    Enabled:=true;
    WebBrowser1.OnCommandStateChange:=nil;
  end;
end;

このコードの信頼性がよくわからないので、私のソリューションをテストするようお願いします。

ありがとう!

于 2010-04-03T09:44:46.900 に答える