精华内容
下载资源
问答
  • MFC窗口最大化

    2013-11-10 22:05:27
    (1)要想使窗口最大化显示,只要在应用程序类的InitInstance函数中将 m_pMainWnd->ShowWindow(SW_SHOW); 改为 m_pMainWnd->ShowWindow(SW_SHOWMAXIMIZED); (2)要想使窗口禁用最大化按钮,只要在主框架...

    在一个单文档应用程序中

    (1)要想使窗口最大化显示,只要在应用程序类的InitInstance函数中将
    m_pMainWnd->ShowWindow(SW_SHOW);
    改为
    m_pMainWnd->ShowWindow(SW_SHOWMAXIMIZED);

    (2)要想使窗口禁用最大化按钮,只要在主框架MainFrame类的PreCreateWindow函数中添加如下代码
    cs.style &= ~WS_MAXIMIZEBOX;

    为了使窗口最大化状态显示且禁用最大化按钮,我们将(1)和(2)结合起来,但是我们发现,此时窗体最下面有一部分已经被任务栏遮挡,就是说窗体的大小已经比最大化还要大了。可用如下方法解决:
    InitInstance中仍使用m_pMainWnd->ShowWindow(SW_SHOW);让其正常显示,窗体的大小统一在PreCreateWindow中处理。
    BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
    {
        if( !CFrameWnd::PreCreateWindow(cs) )
            return FALSE;
        // TODO: 在此处通过修改
        //  CREATESTRUCT cs 来修改窗口类或样式
        cs.hMenu = NULL;//去掉菜单
         
        cs.style &= ~FWS_ADDTOTITLE;//去掉style:modify title based on content,然后才可设置lpszName
        cs.lpszName = _T("hello");//设置窗体标题为hello
     
        cs.style &= ~WS_MAXIMIZEBOX;//禁用最大化按钮
     
        CRect rect;
        rect.SetRect(0, 0, ::GetSystemMetrics(SM_CXMAXIMIZED), ::GetSystemMetrics(SM_CYMAXIMIZED));//获取最大化窗口尺寸
        LONG offX = ::GetSystemMetrics(SM_CXSIZEFRAME);//获取可改变大小的窗体的边框厚度
        LONG offY = ::GetSystemMetrics(SM_CYSIZEFRAME);//获取可改变大小的窗体的边框厚度
        cs.x = -offX;//The x-coordinate of the upper left corner of the new window.
        cs.y = -offY;//The y-coordinate of the upper left corner of the new window.
                     //If the new window is a child window, coordinates are relative 
                     //to the parent window. Otherwise, the coordinates are relative to the screen origin.
        cs.cx = rect.right;//The width of the new window, in pixels.
        cs.cy = rect.bottom;//The height of the new window, in pixels.
         
     
        return TRUE;
    }

    附源代码:http://download.csdn.net/detail/u011652425/6532451

    展开全文
  • VC++MFC 窗口最大化

    2014-04-07 23:10:20
    VC++MFC 窗口最大化、最小化的实现!  当利用AppWizard生成运用程序框架时,VC++已经为我们在标题条上做好了最大化,最小化及恢复按钮。  但有时我们也想在其它地方使用这些功能。这就可采用下面的办法。  在...

    VC++MFC 窗口最大化、最小化的实现!
        当利用AppWizard生成运用程序框架时,VC++已经为我们在标题条上做好了最大化,最小化及恢复按钮。
        但有时我们也想在其它地方使用这些功能。这就可采用下面的办法。
        在指定的消息处理函效中加入下列语句,则程序在收到该条消息后即执行窗口最小化。


    WINDOWPLACEMENT lwndpl;
    WINDOWPLACEMENT * lpwndpl;

    lpwndpl = &lwndpl;
    GetWindowPlacement(lpwndpl);
    lpwndpl->showCmd = SW_SHOWMINIMIZED;
    SetWindowPlacement(lpwndpl);

    BOOL GetWindowPlacement(WINDOWPLACEMENT * lpwndpl) const
    函数的作用为获取表示当前窗口的布局的结构WINDOWPLACEMENT的结构变量指针。


    结构WINDOWPLACEMENT定义为:
    typedef struct tagWINDOWPLACEMENT { /* wndpl * / UINT length;
     UINT flags;
     UINT showCmd;
     POINT ptMinPosition;
     POINT ptMaxPosition;
     RECT rcNormalPosition;
    } WINDOWPLACEMENT;

      
    其中的成员变量showCmd确定当前窗口的状态。其取值一般为:
    SW_HIDE      隐藏窗口。
    SW_MINIMIZE     最小化指定的窗口。
    SW_RESTORE     将最大化或最小化的窗口恢复原来大小。
    SW_SHOW      以原来的大小激话并显示窗口。
    SW_SHOWMAXIMIZED    激活并最大化窗口。

    函数BOOL SetWindowPlacement(const WINDOWPLACEMENT * lpwndpl)作用为按结构MENT的设置显示窗口。
     

    MFC中的CWnd类提供了下面两个函数用于判断窗口的最大化、最小化状态,其子类继承了这些函数:
    IsZoomed:判断窗口是否处于最大化状态。
    IsIconic:判断窗口是否处于最小化状态。

    可以使用CWnd::ShowWindow函数设置窗口的显示状态,其函数原型如下:

    BOOL CWnd::ShowWindow( int nCmdShow );

    其中nCmdShow常用值有:

    SW_HIDE:     隐藏窗口
    SW_SHOW:     激活并以当前的大小在当前位置显示窗口
    SW_SHOWMAXIMIZED:    最大化窗口
    SW_SHOWMINIMIZED:    最小化窗口
    SW_SHOWNORMAL:     激活并显示窗口,如果窗口处于最大化或最小化的状态时,将其恢复到原始窗口状态


    转自:http://blog.csdn.net/yl_wh/article/details/7934475


    展开全文
  • mfc 窗口最大化例子

    2012-11-28 16:00:49
    mfc控件随窗口以前最大化例子 id不要重复
  • MFC窗口最大化的问题

    千次阅读 2017-11-22 19:34:36
    1. 窗口的最大化 修改MFC的窗口界面的外观,修改MFC窗口的外观要用到类风格(CS_XXXX)和窗口风格(WS_XXXX),MFC在WinMain函数的最开始都定义了WNDCLASS窗口类,该类可以改变窗口的图标,背景,光标等;若要改变...

    1. 窗口的最大化
    修改MFC的窗口界面的外观,修改MFC窗口的外观要用到类风格(CS_XXXX)和窗口风格(WS_XXXX),MFC在WinMain函数的最开始都定义了WNDCLASS窗口类,该类可以改变窗口的图标,背景,光标等;若要改变窗口的大小,一般在CMainFrame::PreCreateWindow(CREATESTRUCT& cs)中修改构造类cs的值,可以修改cs的cx,cy来改变大小;
    如 果要最大化,就要修改cs.style|=WS_MAXIMIZE 使主框架类(CMainFrame)最大化,自然视图类(CView)创建时也会跟随主框架类(CMainFrame)而变化,但是此时显示时,仍然是没 有变化,因为MFC主框架类(CMainFrame)的最后显示要通过SW_XXXX参数来决定,网上有些朋友就建议在 CXXXXApp::InitInstance()中的m_pMainWnd-ShowWindow(SW_SHOW);前加入 m_pMainWnd-ShowWindow(SW_SHOWMAXIMIZED);或直接改掉,其实最终效果可以实现,但运行开始时会出现先是 正常的小窗口,然后马上变成最大化,给人的视觉效果明显不好,
    那为什么会产生这种效果,是因为在 m_pMainWnd-ShowWindow(SW_SHOWMAXIMIZED);调用之前会先调用 CMainFrame::ActivateFrame(int nCmdShow);此时便会根据nCmdShow(默认为SW_SHOWNORMAL)调用显示窗口一次,SW_SHOWNORMAL会根据cs中的 cx,cy,x,y来显示窗口,所以cs.style便失去作用(视图类(CView)已经创建,所以它已经是最大化了),所以再次调用 m_pMainWnd-ShowWindow(SW_SHOWMAXIMIZED);会形成视觉暂留
    最终解决方法是重载CMainFrame::ActivateFrame(int nCmdShow);令nCmdShow=SW_SHOWMAXIMIZED即可,然后m_pMainWnd-ShowWindow(SW_SHOW);会根据之前的设置而显示窗口



    2. CView中的控件改变大小。
    使用GetClientRect 搜索(&rect)可以得到客户区的大小,但是MFC先按默认大小显示窗口然后再最大化,所以在OnInitialUpdate()函数里调用GetClientRect ()函数得到的Rect大小是最大化以前,若想在OnInitialUpdate()函数里生成控件并均匀排列无法达到预期效果,这时候需要在程序最大化以后再在重载的OnSize ()函数里调用控件的MoveWindow函数重新布局控件。

    展开全文
  • MaxWindow-MFC窗口最大化

    2013-11-10 21:56:05
    自定义窗口的属性从而使窗口最大化状态显示且禁用最大化按钮
  • VC++MFC 窗口最大化、最小化的实现!

    千次阅读 2013-09-27 17:37:16
    VC++MFC 窗口最大化、最小化的实现!  当利用AppWizard生成运用程序框架时,VC++已经为我们在标题条上做好了最大化,最小化及恢复按钮。  但有时我们也想在其它地方使用这些功能。这就可采用下面的办法。  在...

    VC++MFC 窗口最大化、最小化的实现!
        当利用AppWizard生成运用程序框架时,VC++已经为我们在标题条上做好了最大化,最小化及恢复按钮。
        但有时我们也想在其它地方使用这些功能。这就可采用下面的办法。
        在指定的消息处理函效中加入下列语句,则程序在收到该条消息后即执行窗口最小化。


    WINDOWPLACEMENT lwndpl;
    WINDOWPLACEMENT * lpwndpl;

    lpwndpl = &lwndpl;
    GetWindowPlacement(lpwndpl);
    lpwndpl->showCmd = SW_SHOWMINIMIZED;
    SetWindowPlacement(lpwndpl);

    BOOL GetWindowPlacement(WINDOWPLACEMENT * lpwndpl) const
    函数的作用为获取表示当前窗口的布局的结构WINDOWPLACEMENT的结构变量指针。


    结构WINDOWPLACEMENT定义为:
    typedef struct tagWINDOWPLACEMENT { /* wndpl * / UINT length;
     UINT flags;
     UINT showCmd;
     POINT ptMinPosition;
     POINT ptMaxPosition;
     RECT rcNormalPosition;
    } WINDOWPLACEMENT;

     
    其中的成员变量showCmd确定当前窗口的状态。其取值一般为:
    SW_HIDE      隐藏窗口。
    SW_MINIMIZE     最小化指定的窗口。
    SW_RESTORE     将最大化或最小化的窗口恢复原来大小。
    SW_SHOW      以原来的大小激话并显示窗口。
    SW_SHOWMAXIMIZED    激活并最大化窗口。

    函数BOOL SetWindowPlacement(const WINDOWPLACEMENT * lpwndpl)作用为按结构MENT的设置显示窗口。
     

    MFC中的CWnd类提供了下面两个函数用于判断窗口的最大化、最小化状态,其子类继承了这些函数:
    IsZoomed:判断窗口是否处于最大化状态。
    IsIconic:判断窗口是否处于最小化状态。

    可以使用CWnd::ShowWindow函数设置窗口的显示状态,其函数原型如下:

    BOOL CWnd::ShowWindow( int nCmdShow );

    其中nCmdShow常用值有:

    SW_HIDE:     隐藏窗口
    SW_SHOW:     激活并以当前的大小在当前位置显示窗口
    SW_SHOWMAXIMIZED:    最大化窗口
    SW_SHOWMINIMIZED:    最小化窗口
    SW_SHOWNORMAL:     激活并显示窗口,如果窗口处于最大化或最小化的状态时,将其恢复到原始窗口状态

    展开全文
  • mfc窗口最大化显示

    2018-02-26 11:13:12
    //最大化显示 int cxScreen = ::GetSystemMetrics(SM_CXSCREEN); CRect rt; SystemParametersInfo(SPI_GETWORKAREA, 0, &rt, 0); MoveWindow(0, 0, cxScreen, rt.Height());
  • 资源中是根据一个帖子中所的方法,完成了在窗口最大化时,控件尺寸跟随变化的问题,希望能够帮助到大家
  • 步骤一:把easysize.h拷贝到CMyDlg项目文件夹中,同时在CMyDlg的.h文件和.cpp文件中加入#include "easysize.h"; 步骤二:在CMyDlg类的h文件中,加入DECLARE_EASYSIZE,注意结尾处不要加“;”。...
  • //最大化显示int cxScreen = ::GetSystemMetrics(SM_CXSCREEN); CRect rt; SystemParametersInfo(SPI_GETWORKAREA, 0, &rt, 0); MoveWindow(0, 0, cxScreen, rt.Height());
  • 窗口最大化最小化然后恢复以后 控件位置都不对了 应该怎样调试呢 请大家指教 void CSearchExploreDlg::OnSize(UINT nType, int cx, int cy) //ウィンドウ調整時、各コントロール調整 { CWnd* pLIST; ...
  • 添加WM_GETMINMAXINFO消息处理函数, 函数体如下: void CTabDlg::OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI) { // TODO: Add your message handler lpMMI-> ptMaxSize.y = GetSystemMetrics(SM_CYFULLSCREEN)...
  • MFC窗口最大化时控件位置的调整

    千次阅读 2017-02-07 10:53:11
    如图: 重载OnSize()函数进行...因为只有当窗口产生后才调用OnSize()函数进行控件的调整,当窗口没产生时就对窗口进行调整就会有问题。 void CFileSearchToolDlg::OnSize(UINT nType, int cx, int cy) { CDialogEx
  • mfc窗口最大化和最小化处理

    千次阅读 2012-04-09 17:23:42
    最大化、最小化、恢复的时候都要产生WM_SIZE消息。响应WM_SIZE消息的是OnSize,所以可以重载此函数来处理最小化的时候要做的操作。 afx_msg void OnSize( UINT nType, int cx, int cy ); Parameters nType...
  • VC++MFC 窗口最大化、最小化的实现

    千次阅读 2009-12-01 15:28:00
    当利用AppWizard生成运用程序框架时,VC++已经为我们在标题条上做好了最大化,最小化及恢复按钮。但有时我们也想在其它地方使用这些功能。这就可采用下面的办法。在指定的消息处理函效中加入下列语句,则程序在收到...
  • 消息名称:WM_SYSCOMMAND     The framework calls this member function when the user selects a command from the Control menu, or when the
  • BOOL CMFCDlg::OnInitDialog() { CDialog::OnInitDialog(); CWnd *pWnd; pWnd = GetDlgItem( IDC_... pWnd->SetWindowPos( NULL,0,0,1018,750,SWP_NOZORDER | SWP_NOMOVE );...//整个窗口最大化 }
  • 刚刚写了个mfc的demo测试控件随窗口最大化发生位置变动,加了OnSize函数,但是运行时发现Picture control控件在窗口最大化以后显示出两层图片,一层是原图片大小,另一层是图片随窗口最大化后拉伸过的图片,而且...
  • 1、实现窗口最大化和最小化 将对话框的Border选为None,添加两个按钮,min和close,将按钮的bitmap设置为TRUE;用于添加最小和最大的背景图片 双击min按钮事件中添加: CWnd::ShowWindow(SW_SHOWMINIMIZED); 双击...
  • 《如何实现MFC窗口最大化以及控件随最大化发生位置变动原因》的VS2010示例代码
  • MFC学习 最大化对话框窗口
  • MFC窗口启动最大化

    千次阅读 2013-04-23 21:38:19
    常用MFC进行编程的人都知道单文档的编程,在编程过程中发现欲使程序在启动时就能最大化显示,这里的处理方法有多种,但是结果却不...1.禁止窗口最大化等按钮 修改PreCreateWindow()函数如下: BOOL CWndMain::PreCr
  • 实现MFC对话框最大化

    2010-08-26 15:53:25
    解决MFC窗口最大化后,对话框中的控件也相应的变化大小
  • MFC手动添加窗口 最大化 最小化 还原 关闭
  • MFC禁止窗口最大化

    2014-04-07 22:37:27
    禁止窗口最大化等按钮 修改PreCreateWindow()函数如下: BOOL CWndMain::PreCreateWindow(CREATESTRUCT& cs) { if( !CFrameWnd::PreCreateWindow(cs) ) return FALSE; cs.dwExStyle &= ~WS_EX_CLIENTEDGE; cs....
  • 这一篇介绍的是怎么实现MFC窗口的最大最小,以及里面控件大小也随之改变 第一步:实现窗口最大最小 首先右击窗口空白处,打开properties,将里面的MaximizeBox和MinimizeBox都选择为true,这时候窗口已经有...
  • 如何实现MFC窗口最大化以及控件随最大化发生位置变动原因 最近做了一个MFC的程序,需求方让实现最大化,于是我在网上找了一大堆资料,对于我这一个初学者来说,发现要么就是没有代码只有文字,要么就是只有文字...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 435
精华内容 174
关键字:

mfc窗口最大化