■61257 / inTopicNo.5) |
Re[4]: PrintDocumentの「印刷中」ダイアログの表示位置 |
□投稿者/ 魔界の仮面弁士 (2292回)-(2011/08/08(Mon) 04:33:56)
|
2011/08/08(Mon) 04:36:49 編集(投稿者)
■No61255 (Azulean さん) に返信 >>「印刷中」ダイアログに関する公開メンバが見当たらないので、全く見当がつきません。 > 魔界の仮面弁士さんも「独自のダイアログに差し替えることができるかと」と書かれているように、自分でダイアログを作ることです。 ですです。フォロー感謝。
標準では、進捗表示機能付きの PrintControllerWithStatusDialog が使われていますが、 StandardPrintController を使えば進捗表示をオフにできますし、あるいは StandardPrintController の派生クラスを用意するなどして、そこから Azulean さんが 記載されているタイミングで、自作 Form を代わりに表示させることもできます。
http://ascii.asciimw.jp/pb/msdn/article/a35_0056.html http://msdn.microsoft.com/en-us/magazine/cc188767.aspx
上記では、自作フォームを使う代わりに、ProgressBar で進捗表示させていますが、 考え方としては同じです。
■No61253 (五右衛門 さん) に返信 >今後は、PrintPreviewDialogの代わりにPrintPreviewControlを使用しようと検討していますが、 >こちらについても「プレビューを生成中」ダイアログの操作は無理なのでしょうか? PrintPreviewDialog / PrintPreviewControl は、出力直前に PrintController を PreviewPrintController へと差し替えてしまうようで、置き換えることはできなさそうです。
内部ではいわば、 With document Dim org = .PrintController .PrintController = New PrintControllerWithStatusDialog(New PreviewPrintController(), "プレビューを生成しています") .Print .PrintController = org End With のような作業が行われているのでしょう。
どうしても必要なら、PrintPreviewControl すら使わずに、PreviewPrintController などから PreviewPageInfo を得て、独自のプレビュー機能を作り上げるといった手間が必要かと。多分。
もしくはダイアログの表示を監視して、プレビュー開始時に API で位置制御を行うという手も 考えましたが……いずれにせよ、標準的な方法としての位置制御機能は用意されていないと思います。
|
|