ChildFrm.cpp 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. // 这段 MFC 示例源代码演示如何使用 MFC Microsoft Office Fluent 用户界面
  2. // (“Fluent UI”)。该示例仅供参考,
  3. // 用以补充《Microsoft 基础类参考》和
  4. // MFC C++ 库软件随附的相关电子文档。
  5. // 复制、使用或分发 Fluent UI 的许可条款是单独提供的。
  6. // 若要了解有关 Fluent UI 许可计划的详细信息,请访问
  7. // https://go.microsoft.com/fwlink/?LinkId=238214.
  8. //
  9. // 版权所有(C) Microsoft Corporation
  10. // 保留所有权利。
  11. // ChildFrm.cpp: CChildFrame 类的实现
  12. //
  13. #include "stdafx.h"
  14. #include "framework.h"
  15. #include "SATHelper.h"
  16. #include "ChildFrm.h"
  17. #ifdef _DEBUG
  18. #define new DEBUG_NEW
  19. #endif
  20. // CChildFrame
  21. IMPLEMENT_DYNCREATE(CChildFrame, CMDIChildWndEx)
  22. BEGIN_MESSAGE_MAP(CChildFrame, CMDIChildWndEx)
  23. ON_COMMAND(ID_FILE_PRINT, &CChildFrame::OnFilePrint)
  24. ON_COMMAND(ID_FILE_PRINT_DIRECT, &CChildFrame::OnFilePrint)
  25. ON_COMMAND(ID_FILE_PRINT_PREVIEW, &CChildFrame::OnFilePrintPreview)
  26. ON_UPDATE_COMMAND_UI(ID_FILE_PRINT_PREVIEW, &CChildFrame::OnUpdateFilePrintPreview)
  27. ON_WM_CREATE()
  28. END_MESSAGE_MAP()
  29. // CChildFrame 构造/析构
  30. CChildFrame::CChildFrame() noexcept
  31. {
  32. // TODO: 在此添加成员初始化代码
  33. }
  34. CChildFrame::~CChildFrame()
  35. {
  36. }
  37. BOOL CChildFrame::PreCreateWindow(CREATESTRUCT& cs)
  38. {
  39. // TODO: 在此处通过修改 CREATESTRUCT cs 来修改窗口类或样式
  40. if( !CMDIChildWndEx::PreCreateWindow(cs) )
  41. return FALSE;
  42. // 只去掉最大化最小化按钮;
  43. //cs.style &= ~(WS_MAXIMIZEBOX | WS_MINIMIZEBOX |WS_THICKFRAME);
  44. // 去掉整个菜单(最大化、最小化、关闭……),此时GetSystemMenu(FALSE)返回NULL;
  45. cs.style &= ~WS_SYSMENU;
  46. cs.style &= ~FWS_ADDTOTITLE;
  47. return TRUE;
  48. }
  49. // CChildFrame 诊断
  50. #ifdef _DEBUG
  51. void CChildFrame::AssertValid() const
  52. {
  53. CMDIChildWndEx::AssertValid();
  54. }
  55. void CChildFrame::Dump(CDumpContext& dc) const
  56. {
  57. CMDIChildWndEx::Dump(dc);
  58. }
  59. #endif //_DEBUG
  60. // CChildFrame 消息处理程序
  61. void CChildFrame::OnFilePrint()
  62. {
  63. if (m_dockManager.IsPrintPreviewValid())
  64. {
  65. PostMessage(WM_COMMAND, AFX_ID_PREVIEW_PRINT);
  66. }
  67. }
  68. void CChildFrame::OnFilePrintPreview()
  69. {
  70. if (m_dockManager.IsPrintPreviewValid())
  71. {
  72. PostMessage(WM_COMMAND, AFX_ID_PREVIEW_CLOSE); // 强制关闭“打印预览”模式
  73. }
  74. }
  75. void CChildFrame::OnUpdateFilePrintPreview(CCmdUI* pCmdUI)
  76. {
  77. pCmdUI->SetCheck(m_dockManager.IsPrintPreviewValid());
  78. }
  79. BOOL CChildFrame::Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CMDIFrameWnd* pParentWnd, CCreateContext* pContext)
  80. {
  81. // TODO: 在此添加专用代码和/或调用基类
  82. return CMDIChildWndEx::Create(lpszClassName, lpszWindowName, dwStyle, rect, pParentWnd, pContext);
  83. }
  84. int CChildFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
  85. {
  86. if (CMDIChildWndEx::OnCreate(lpCreateStruct) == -1)
  87. return -1;
  88. // TODO: 在此添加您专用的创建代码
  89. #if 0
  90. CMenu* pSysMenu = GetSystemMenu(FALSE);
  91. ASSERT(pSysMenu != NULL);
  92. VERIFY(pSysMenu->RemoveMenu(SC_CLOSE, MF_BYCOMMAND));
  93. #endif
  94. return 0;
  95. }
  96. void CChildFrame::ActivateFrame(int nCmdShow)
  97. {
  98. // TODO: 在此添加专用代码和/或调用基类
  99. nCmdShow = SW_MAXIMIZE;
  100. CMDIChildWndEx::ActivateFrame(nCmdShow);
  101. }