以下是该方法的声明:
afx_msg BOOL OnSetPreviewMode(BOOL bPreview, CPrintPreviewState* pState = NULL);
该方法接受两个参数:
- bPreview:一个布尔值,指示是否设置为预览模式。如果为 TRUE,则设置为预览模式;如果为 FALSE,则取消设置为预览模式。
- pState:一个指向 CPrintPreviewState 对象的指针,用于存储打印预览状态信息。
使用示例:
class CMyFrameWnd : public CFrameWnd
{
public:
// 其他成员函数和声明...
afx_msg void OnFilePrintPreview()
{
CPrintPreviewState* pState = new CPrintPreviewState;
if (DoPrintPreview(IDD_PREVIEW, this, RUNTIME_CLASS(CMyPrintPreviewView), pState))
{
// 打印预览模式已经启动,pState 中存储了相关的打印预览状态
}
else
{
// 打印预览模式启动失败,执行其他操作
delete pState;
}
}
afx_msg void OnClosePrintPreview()
{
if (m_pPreviewState != NULL)
{
OnSetPreviewMode(FALSE, m_pPreviewState);
delete m_pPreviewState;
m_pPreviewState = NULL;
}
}
private:
CPrintPreviewState* m_pPreviewState;
};
BEGIN_MESSAGE_MAP(CMyFrameWnd, CFrameWnd)
// 其他消息映射...
ON_COMMAND(ID_FILE_PRINT_PREVIEW, &CMyFrameWnd::OnFilePrintPreview)
ON_COMMAND(ID_FILE_CLOSE_PRINT_PREVIEW, &CMyFrameWnd::OnClosePrintPreview)
ON_COMMAND_RANGE(ID_FILE_PRINT, ID_FILE_PRINT_DIRECT, &CMyFrameWnd::OnFilePrint)
// 其他消息映射...
END_MESSAGE_MAP()
afx_msg void CMyFrameWnd::OnSetPreviewMode(BOOL bPreview, CPrintPreviewState* pState)
{
// 在设置或取消设置预览模式时调用
if (bPreview)
{
// 设置为预览模式
m_pPreviewState = pState; // 保存预览模式的状态信息
// 执行其他预览模式相关的操作...
}
else
{
// 取消设置为预览模式
m_pPreviewState = NULL; // 清空预览模式的状态信息
// 执行其他取消预览模式相关的操作...
}
}
在上述示例中,OnSetPreviewMode 方法被用于设置或取消设置预览模式。当打开打印预览时,可以调用 OnSetPreviewMode(TRUE, pState),并在关闭打印预览时调用 OnSetPreviewMode(FALSE, pState)。这允许在设置或取消设置预览模式时执行相关的操作。
转载请注明出处:http://www.zyzy.cn/article/detail/17886/MFC/CFrameWnd