VS2005 CFormViewのプレビュー – プログラミング – Home

通知
すべてクリア

[解決済] VS2005 CFormViewのプレビュー


Woona
 Woona
(@Woona)
ゲスト
結合: 18年前
投稿: 5
Topic starter  

環境は、XP VS2005(mfc)で、SDI CFormView Windowsエクスプローラスタイルです。

CFormViewベースでプレビューを行いたいのですが、方法がわかりません。
CMainFrameはOnFilePrintPreview()にくるのですがプレビュー方法が分かりません。
また、CFormViewでは、プレビュー方法はわかるのですが、OnPrint等オーバーライドに
きません。
ご存知の方よろしくお願いします。


引用未解決
トピックタグ
PATIO
(@patio)
Famed Member
結合: 3年前
投稿: 2660
 

質問の文章に解せない部分がありますが、
CFrameWndとCViewがどのように連携してプレビューを行っているかを
調べれば解決しそうな気がします。
プレビュー時にCView::OnPrintが何処からコールされるのかを調べて見ては
どうでしょうか?
MSDNを調べれば、何かわかると思いますよ。


返信引用
Woona
 Woona
(@Woona)
ゲスト
結合: 18年前
投稿: 5
Topic starter  

PATIOさんありがとうございます。

下記のコードでCMainFrameからプレビューを行うことができました。

void CMainFrame::OnFilePrintPreview()
{
if (m_bPreview) {
this->SetFocus();
return;
}

CFrameWnd* pOldFrame = (CFrameWnd*)this;

if (!m_pTemplate) {
m_pTemplate = new CSingleDocTemplate(
IDR_MAINFRAME,
NULL,
RUNTIME_CLASS(CFrameWnd),
RUNTIME_CLASS(CViewPrintPreview));
AfxGetApp()->AddDocTemplate(m_pTemplate);
}

CFrameWnd * pFrameWnd = m_pTemplate->CreateNewFrame( NULL, NULL );
m_bPreview = TRUE;

m_pTemplate->InitialUpdateFrame( pFrameWnd, NULL);

CViewPrintPreview* pView=(CViewPrintPreview*)pFrameWnd->GetActiveView
();
pView->m_pOldFrame = pOldFrame;

AfxGetApp()->m_pMainWnd = pFrameWnd;
pView->OnFilePrintPreview();
}


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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