工控编程吧

标题: 上位机MFC如何使框架窗口初始最大化 [打印本页]

作者: qq263946146    时间: 2019-7-23 23:21
标题: 上位机MFC如何使框架窗口初始最大化
我们可以在WINAPP类的初始函数InitInstance内设置框架窗口的初始状态
具体函数如下
  1. BOOL CDemoApp::InitInstance()
  2. {
  3.         AfxEnableControlContainer();

  4.         // Standard initialization
  5.         // If you are not using these features and wish to reduce the size
  6.         //  of your final executable, you should remove from the following
  7.         //  the specific initialization routines you do not need.

  8. #ifdef _AFXDLL
  9.         Enable3dControls();                        // Call this when using MFC in a shared DLL
  10. #else
  11.         Enable3dControlsStatic();        // Call this when linking to MFC statically
  12. #endif

  13.         // Change the registry key under which our settings are stored.
  14.         // TODO: You should modify this string to be something appropriate
  15.         // such as the name of your company or organization.
  16.         SetRegistryKey(_T("Local AppWizard-Generated Applications"));

  17.         LoadStdProfileSettings();  // Load standard INI file options (including MRU)

  18.         // Register the application's document templates.  Document templates
  19.         //  serve as the connection between documents, frame windows and views.

  20.         CMultiDocTemplate* pDocTemplate;
  21.         pDocTemplate = new CMultiDocTemplate(
  22.                 IDR_DEMOTYPE,
  23.                 RUNTIME_CLASS(CDemoDoc),
  24.                 RUNTIME_CLASS(CChildFrame), // custom MDI child frame
  25.                 RUNTIME_CLASS(CDemoView));
  26.         AddDocTemplate(pDocTemplate);

  27.         // create main MDI Frame window
  28.         CMainFrame* pMainFrame = new CMainFrame;
  29.         if (!pMainFrame->LoadFrame(IDR_MAINFRAME))
  30.                 return FALSE;
  31.         m_pMainWnd = pMainFrame;

  32.         // Parse command line for standard shell commands, DDE, file open
  33.         CCommandLineInfo cmdInfo;
  34.         ParseCommandLine(cmdInfo);

  35.         // Dispatch commands specified on the command line
  36.         if (!ProcessShellCommand(cmdInfo))
  37.                 return FALSE;

  38.         //最大化
  39.         m_nCmdShow = SW_SHOWMAXIMIZED;
  40. //        //最小化
  41. //        m_nCmdShow = SW_SHOWMINIMIZED;   
  42.         pMainFrame->ShowWindow(m_nCmdShow);
  43.         pMainFrame->UpdateWindow();

  44.         return TRUE;
  45. }
复制代码
我们可以看到,将WinApp类的成员变量m_nCmdShow 赋值为 SW_SHOWMAXIMIZED;
再将主框架窗口以这种形式显示出来就实现了。pMainFrame->ShowWindow(m_nCmdShow);但执行程序后,会发现子框架并没有最大化,
这就有点不对称了。
我们也可以将子框架在初始化最大化显示。
只在要子框架窗口类的ActivateFrame函数内设置显示模式就好了。
  1. void CChildFrame::ActivateFrame(int nCmdShow)
  2. {
  3.         //最大化
  4.         nCmdShow = SW_SHOWMAXIMIZED;
  5. //        //最小化
  6. //        nCmdShow = SW_SHOWMINIMIZED

  7.         CMDIChildWnd::ActivateFrame(nCmdShow);
  8. }
复制代码


[MFC408]1[/MFC408]
[weixinlianxi]2[/weixinlianxi]






欢迎光临 工控编程吧 (https://www.gkbc8.com/) Powered by Discuz! X3.4