AfxGetMainWnd()是干什么用的啊,AfxGetMainWnd()->m_hWnd这个又是干什么用的啊,不知道那位大哥帮忙解答一下

解决方案 »

  1.   

    用向导建立一个单文档/多文档程序,其中最外面的框架叫做 frame ,包括标题、最大最小化按钮、菜单、工具条、以及 view 等都在 frame 中。frame 中,中间那块白色的部分被 view 占据。AfxGetMainWnd() 就是取得此 frame 的指针,m_hWnd 是此 frame 的窗口句柄。
      

  2.   

    上面说的那个 frame ,在你工程中默认的名字叫做 CMainFrame ,取得此 frame 指针,可以对 frame(也就是最外面的窗口) 进行操作,比如隐藏、移动、最小化、最大化窗口。例如:AfxGetMainWnd()->CenterWindow() ; // 使窗口居中
    AfxGetMainWnd()->ShowWindow(SW_MAXIMIZE) ; // 最大化其实 CMainFrame 从 CFrameWnd 派生,CFrameWnd 又从 CWnd派生。CMainFrame 本质上就是一个窗口。
      

  3.   

    AfxGetMainWnd() 就是获得应用程序主窗口的指针,AfxGetMainWnd()->m_hWnd是主窗口的句柄。
      

  4.   

    m_hWnd 是基类 CWnd 的成员变量,其定义为 HWND m_hWnd;  , 就是窗口句柄。上面的 AfxGetMainWnd()->ShowWindow(SW_MAXIMIZE) ; // 这里的 ShowWindow 是 CWnd 的成员函数也可以写成 ::ShowWindow( AfxGetMainWnd()->m_hWnd  ,SW_MAXIMIZE) ; // 这里的 ShowWindow 是windows API
      

  5.   

    2) 在App中获得MainFrame指针
    CWinApp 中的 m_pMainWnd变量就是MainFrame的指针
    也可以: CMainFrame *pMain =(CMainFrame *)AfxGetMainWnd();