※ ChatGPTを利用し、要約された質問です(原文:CMainFrameからCPppView::OnFilePrintPreview();を呼びたい。)
CMainFrameからCPppView::OnFilePrintPreview()を呼びたい
このQ&Aのポイント
環境はWIN98 VC++6.0 MFCです。以下のコードで左クリックにて印刷プレビューが開きます。
しかし、CMainFrameから呼び出すとエラーが発生します。どうすればCMainFrame内で使えるようになりますか?
MainFrm.cppには 'OnFilePrintPreview' の宣言が必要です。
CMainFrameからCPppView::OnFilePrintPreview();を呼びたい。
環境はWIN98 VC++6.0 MFCです。
以下のようなコードで左クリックにて印刷プレビューが開きます。
void CPppView::OnLButtonDown(UINT nFlags, CPoint point)
{
CPppView::OnFilePrintPreview();
CView::OnLButtonDown(nFlags, point);
}
これをCMainFrameから呼びたくて、以下のようにしました。
#include "pppView.h"
void CMainFrame::OnMenuitem32771()
{
CPppView::OnFilePrintPreview();
}
すると以下のようなエラーが出てしまいます。
どうすればCMainFrame内で使えるようになりますか?
よろしくご指導ください。
MainFrm.cpp
c:\windows\デスクトップ\ppp\pppview.h(21) : error C2143: 構文エラー : ';' が '*' の前に必要です。
c:\windows\デスクトップ\ppp\pppview.h(21) : error C2501: 'CPppDoc' : 識別名を宣言するのに、型が指定されていません。
c:\windows\デスクトップ\ppp\pppview.h(21) : error C2501: 'GetDocument' : 識別名を宣言するのに、型が指定されていません。
C:\WINDOWS\デスクトップ\ppp\MainFrm.cpp(113) : error C2248: 'OnFilePrintPreview' : protected メンバ (クラス 'CView' で宣言されている)にアクセスできません。
c:\program files\microsoft visual studio\vc98\mfc\include\afxwin.h(3660) : 'OnFilePrintPreview' の宣言を確認してください。
C:\WINDOWS\デスクトップ\ppp\MainFrm.cpp(113) : error C2352: 'CView::OnFilePrintPreview' : 静的でないメンバ関数の中で呼び出しが正しくありません。
c:\program files\microsoft visual studio\vc98\mfc\include\afxwin.h(3660) : 'OnFilePrintPreview' の宣言を確認してください。
cl.exe の実行エラー
お礼
回答ありがとうございます。 こう言う時にPostMessage()を使うのですね。 あれからいろいろ考えて非常に単純なことですが、ウィザードを使ってクラス名をCMainFrameにしてオブジェクトIDでID_FILE_PRINT_PREVIEW選ぶだけで出来ました。 お騒がせしました。