印刷プレビューのツールバーのカスタマイズ – プログラミング – Home

印刷プレビューのツールバーのカスタマイ...
 
通知
すべてクリア

[解決済] 印刷プレビューのツールバーのカスタマイズ


FAY
 FAY
(@FAY)
ゲスト
結合: 22年前
投稿: 14
Topic starter  

印刷プレビューのときに画面上部に表示される
ボタンが並んだツールバーをカスタマイズ
(具体的にはボタンを追加)するには
どうしたらいいのでしょうか。

プレビュー時に表示されるツールバーのコントロールIDが
AFX_IDD_PREVIEW_TOOLBAR らしいというところまでは
分かったのですが、そこで詰まってしまいました。

どなたかご存知でしたら、どうぞご教授ください。

環境はWindows2000 VC6.0 SP5 のMFC(dll)です。


引用未解決
トピックタグ
tib
 tib
(@tib)
ゲスト
結合: 23年前
投稿: 468
 

コントロールIDが解っているのなら、GetDescendantWindow()が使えると思います。


返信引用
sara
 sara
(@sara)
ゲスト
結合: 23年前
投稿: 99
 

下記が参考になると思います。
http://www.microsoft.com/japan/developer/library/vcmfc/_mfcnotes_tn030.htm


返信引用
FAY
 FAY
(@FAY)
ゲスト
結合: 22年前
投稿: 14
Topic starter  

tibさん、saraさん、回答ありがとうございました。

はじめにtibさんがおっしゃっている方法でやってみたのですが、
GetDescendantWindow()ではダイアログバーを取得することは出来ませんでした。
(NULLが戻り地として帰ってきます。)

次にsaraさんに教えていただいたページをMSDN内で見つけ、それを参考にして
OnFilePrintPreview() のインプリメントを自分で書き、
そのインプリメントの中で読んでいるDoPrintPreview()関数に
自作のダイアログバーのIDを引数として渡すことでそれを
プレビュー時のツールバーとして表示することが出来ました。
(ただ、既存の各ボタンにはデフォルトのIDを
リソースエディタで設定してあげなければならないのですが。
(たとえば印刷ボタンにはAFX_ID_PREVIEW_PRINTなど))

実際は以下のような感じです。
void CMyView::OnFilePrintPreview()
{
CPrintPreviewState* pState = new CPrintPreviewState;

//AFX_IDD_PREVIEW_TOOLBARのかわりに自作のIDD_MY_PREVIEW_TOOLBARを渡す。
//if (!DoPrintPreview(AFX_IDD_PREVIEW_TOOLBAR, this,
// RUNTIME_CLASS(CPreviewView), pState))
if (!DoPrintPreview(IDD_MY_PREVIEW_TOOLBAR, this,
RUNTIME_CLASS(CPreviewView), pState))
{
TRACE0(Error: DoPrintPreview failed);
AfxMessageBox(AFX_IDP_COMMAND_FAILURE);
delete pState;
  }

  //これをやらない
//CView::OnFilePrintPreview();
}

どうもありがとうございました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました