精华内容
下载资源
问答
  • MFC对话框最大化实现

    千次阅读 2016-06-02 16:19:01
    对话框最大化

    对话框最大化个人觉得完全是鸡肋,如果需要全屏话的软件完全可以用单文档实现,对话框只是实现一些小的功能的软件,但为了显示功能强大加上了最大化按钮,当初设计时是按对话框大小进行设计,放大以后真的不忍直视,但还是要将这倒霉的功能进行记录,以备后需。

    对话框放大相应WM_SIZE消息,实现函数为Onsize(),只需在重载此函数即可

    void CCDlgFrameDlg::OnSize(UINT nType, int cx, int cy)
    {
    CDialog::OnSize(nType, cx, cy);


    // TODO: Add your message handler code here

    //对话框初始化之间会调用Onsize进行框架初始化,如果不加判断会报错,因为空间还未加载

    if(Init_flag)
    {
    change(IDC_STATIC);
    change(IDC_COMBO1);
    change(IDC_EDIT1);
    change(IDC_PROGRESS1);
    change(IDC_BUTTON1);

    //放大倍数保存
    m_Multiple_width=1/m_Multiple_width;
    m_Multiple_heigh=1/m_Multiple_heigh;
    }
    }

    函数change(int nID)主要实现控件放大和恢复

    void CCDlgFrameDlg::change(int nID)
    {
    CRect Rect;
    GetDlgItem(nID)->GetWindowRect(Rect);
    ScreenToClient(Rect);


    CPoint  OldTLPoint,TLPoint;
    OldTLPoint=Rect.TopLeft();
    TLPoint.x=long(OldTLPoint.x*m_Multiple_width);
    TLPoint.y=long(OldTLPoint.y*m_Multiple_heigh);


    CPoint  OldBRPoint,BRPoint;
    OldBRPoint=Rect.BottomRight();
    BRPoint.x=long(OldBRPoint.x*m_Multiple_width);
    BRPoint.y=long(OldBRPoint.y*m_Multiple_heigh);


    Rect.SetRect(TLPoint,BRPoint);
    GetDlgItem(nID)->MoveWindow(Rect,TRUE);
    }

    放大倍数的提取则是在调用两个函数之前

    CRect  rect;
      GetWindowRect(&rect);
      ScreenToClient(rect);
    int  m_nDlgWidth=rect.right-rect.left;
    int  m_nDlgHeight=rect.bottom-rect.top;

    //获取屏幕尺寸
    int  m_nWidth=GetSystemMetrics(SM_CXSCREEN);
    int  m_nHeight=GetSystemMetrics(SM_CYSCREEN);·


    m_Multiple_width=float(m_nWidth)/float(m_nDlgWidth);
    m_Multiple_heigh=float(m_nHeight)/float(m_nDlgHeight);

    放大倍数定义为float,是防止在多次放大和缩小时控件产生错位,精度高而已。

    展开全文
  • MFC对话框增加最大化和最小化按钮

    万次阅读 2014-05-30 14:01:48
    1.在对话框上右键选择属性 2.切换到

    1.在对话框上右键选择属性

    2.切换到styles选项卡

    3.勾选minnimize box和maximize box

    展开全文
  • 1.点击对话框,在属性里:border改为resizing,可拉伸  Maximize Box 改为True  Minimize Box 改为True  Vertic

    1.点击对话框,在属性里:border改为resizing,可拉伸

                                            Maximize Box 改为True

                                           Minimize Box 改为True

                                          Vertical Scrollbar改为 true,显示滚动条

                                         titlebar改为false,题目消失


    2.对话框全屏显示:

    OnInitDialog()中,也就是初始显示状态是全屏

    int   cx,cy;
         cx   =   GetSystemMetrics(SM_CXSCREEN);
         cy   =   GetSystemMetrics(SM_CYSCREEN);
        //再用MoveWindow
         CRect   rcTemp;
         rcTemp.BottomRight()   =   CPoint(cx,   cy);
         rcTemp.TopLeft()   =   CPoint(0,   0);
         MoveWindow(&rcTemp);

    3.控件随对话框的大小而改变

    添加OnSize,在类向导里。

    添加:

    if(m_sure.GetSafeHwnd())//m_sure为相应控件变量

    m_sure.MoveWindow(0,0,cx,cy);

    按钮边界显示不出来,可能要给控件加了背景才可以。

    4.控件随对话框的大小而改变,法2

    1、在对话框类中加入成员变量CRect m_rect;用于保存对话框大小变化前的大小;
    2、在对话框的OnInitDialog()函数中获取对话框创建时的大小:GetClientRect(&m_rect);
    3、在WM_SIZE的响应函数OnSize()中加入以下代码:
    C/C++ code
    CWnd *pWnd;
     pWnd = GetDlgItem(IDC_LIST);     //获取控件句柄
     if(pWnd && nType!=1)//判断是否为空,因为对话框创建时会调用此函数,而当时控件还未创建
     {
      CRect rect;   //获取控件变化前大小
      pWnd->GetWindowRect(&rect);
      ScreenToClient(&rect);//将控件大小转换为在对话框中的区域坐标
      // cx/m_rect.Width()为对话框在横向的变化比例
      rect.left=rect.left*cx/m_rect.Width();/调整控件大小
      rect.right=rect.right*cx/m_rect.Width();
      rect.top=rect.top*cy/m_rect.Height();
      rect.bottom=rect.bottom*cy/m_rect.Height();
      pWnd->MoveWindow(rect);//设置控件大小
     }
     GetClientRect(&m_rect);//将变化后的对话框大小设为旧大小
    //这长的代码只能改变一个控件,需改进。



    展开全文
  • MFC重绘标题栏和最大化按钮等,并能正确响应各消息.
  • VS2008 如何设置mfc对话框最小

    千次阅读 2014-05-29 19:39:44
    VS2008 如何设置mfc对话框最小

    VS2008 如何设置mfc对话框最小化

    2014年5月29日19:40:20

    选择对话框,在Properties中将Minimize Box改为True。

    展开全文
  • MFC对话框的重绘,包括标题栏、最小化按钮,最大化按钮,关闭按钮以及边框等的重绘
  • 最近开发MFC的时候,发现标题栏无法显示最大化、最小化和关闭按钮了 右击属性栏,发现如下设置成了灰色的了 解决办法: 设置System Menu为True,上面的最大化和最小化就可以设置了
  • MFC对话框启动默认最大化

    千次阅读 2018-04-13 09:30:03
    在OnInitDialog()函数添加:在其中添加如下语句:ShowWindow(SW_MAXIMIZE);BOOL CMFrame::OnInitDialog(){ CDialogEx::OnInitDialog(); ...... ShowWindow(SW_MAXIMIZE);//对话框默认最大化弹出 returnTRUE;}...
  • 1. TestDlg.h: CStatusBar_sjl m_wndStatusBar; ...当我单击对话框程序的右上角的最大化按钮后,状态栏的位置大小依然没有改变, 请问我该怎么做,能使得状态栏能随对话框程序的大小改变。。。
  • 我想禁用对话框窗口的最小化按钮,(也可以把最小化,最大化按钮都禁用了)。 我自己弄了好久也搞不定,我重载了虚函数PreCreateWindow()可是对外观改变没效果。 然后我看了这个文章:...
  • MFC 对话框

    千次阅读 2013-10-30 15:15:47
    MFC对话框支持“所见即所得”编程模式。其类型分为模式对话框和非模式对话框。 对话框由一个rc资源文件描述外观,通过ID与一个CPP类相连接,对话框内的控件使用基于ID的变量映射通讯。 模式对话框对象被定义后,...
  • MFC对话框初始及大小设置

    千次阅读 2013-09-19 09:24:36
    3)如果还想从应用程序标题栏中去掉最小化和最大化按钮,则添加: cs.style&=~(WS_MAXIMIZEBOX|WS_MINIMIZEBOX); 4)如果想使应用程序的大小固定,以致拖动窗口的右下角时没有反映,那么添加: cs.style&=~WS_...
  • 打开资源视图,然后打开对话框,右键属性,然后设置这么这里几个属性就是了:最后,显示的结果:
  • MFC对话框可拖动

    千次阅读 2017-09-09 11:51:12
    对话框中,分为客户区和非客户区。即客户可修改操作的区域与不可修改操作的区域。标题栏即属于非客户区。 为了实现窗口可拖动,在直接贴图的窗口中,即自绘背景图中需要自己实现客户区与非客户区的区分,之后...
  • 只是不显示关闭按钮,其它如最小化,最大化这些都要显示, pSysMenu-> DeleteMenu(5,MF_BYPOSITION); 这个代码可是让关闭按钮失效,或是说成灰色, 有什么办法能让他隐藏呢
  • MFC 对话框程序设计

    千次阅读 2017-01-23 23:49:10
    MFC 对话框程序设计
  • 一:一样,首先创建一个MFC对话框作为父对话框。在父对话框中加入一个picture控件,命名为 IDC_STATIC_RECT,作为要嵌入子对话框的位置。 二:创建两个子对话框,两个子对话框的 ID 分别为 IDD_CHILD1_DIALOG、IDD_...
  • BCGControlBar MFC对话框换肤 续
  • mfc 对话框

    2016-09-08 14:51:01
    一、修改对话框的标题 方法1、对话框标题栏内容为静态 直接在对话框属性“General”的“Caption”中修改。 方法2、在初始函数中添加 this->SetWindowText(_T("This is title")); //动态的 二、修改标题栏、任务栏...
  • 我做的对话框初始化就是用MoveWindow最大化的。添加最小化按钮。在OnSysCommand添加 if(nID==SC_MINIMIZE) { ShowWindow(SW_HIDE); } 但是点击一下没最小化。并且卡住了,等一会再点击就最小化了。但是再...
  • MFC对话框

    2012-05-04 12:00:20
    MS的指示:非模态对话框需要重载函数OnCanel,并且在这个函数中调用DestroyWindow。并且不能调用基类的OnCancel,因为基类的OnCancel调用了EndDialog这个函数,这个函数是针对模态对话框的。 还有一个必须重载...
  • 这里写自定义目录标题 1.窗口分割: (参考:...spm=1001.2101.3001.4242l) 创建了CSHPManagementSystem30Dlg的工程文件,及对话框,类。 通过类向导创建CLeftDlg、CCenterDlg、CRigh
  • 在属性栏中可以选择最小化 最大化框,选择完就可以为对话框增加两个按钮 只是最大化的时候,里面的内容不能随之按比例增加 等我以后会了 一定会及时分享的 在属性栏中还有好多好玩的属性 大家快点动起手来 ...
  • 2.VS2005对话框属性中没有最大化最小化设置项,如何自己手动设置 3.怎么定时显示对话框一60秒后,自动弹出对话框二,需要用定时器吗,具体怎么操作,我已经在对话框一种设一个定时器用来显示系统时间 4.怎么让以后...
  • MFC对话框整合

    千次阅读 2016-11-24 19:20:34
    一、创建对话框模板和修改对话框属性 创建对话框主要分两大步,第一,创建对话框资源,主要包括创建新的对话框模板、设置对话框属性和为对话框添加各种控件;第二,生成对话框类,主要包括新建对话框类、...
  • MFC对话框编辑器 微软注释: https://docs.microsoft.com/en-us/cpp/windows/controls-in-dialog-boxes?view=msvc-160 学习内容: 1、BUTTON 默认事件:BN_CLICKED 2、 Check Box 默认事件:BN_CLICKED 3、...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,118
精华内容 2,447
热门标签
关键字:

mfc对话框最大化按钮