精华内容
下载资源
问答
  • MFC Onsize()函数的作用

    千次阅读 2016-09-19 10:53:36
     在OnSize()中,调用重绘函数,  再在OnPaint()中,进行窗口大小的调整 或 重定位。而未说明理由。 我经过尝试,再在OnPaint()中取出cx,cy值时,发现没有0,0的情况, 因此假想认为:  OnSize()在...

     

    翻阅无数博客,有少数博友通过打出每次获得的  cx,cy  发现其中,竟有0,0值。

    而后,一位博友提出:

          在OnSize()中,调用重绘函数,

          再在OnPaint()中,进行窗口大小的调整 或 重定位。而未说明理由。

    我经过尝试,再在OnPaint()中取出cx,cy值时,发现没有0,0的情况,

    因此假想认为:

            OnSize()在窗口从创建到重绘,将被多次调用,

            而OnPaint()却仅在一切都准备好后才会调用,

     

     

     

     

     

    展开全文
  • MFC OnSize事件调用时间

    千次阅读 2017-06-07 22:52:35
    在Ocx控件被加载时,第一次调用OnSize事件实在控件中的各个部件未加载前,此时如果操作控件中的控件会出现控制针异常,需要提前判断。 CTestDlg m_dlg; int CTestCtrl::OnCreate(LPCREATESTRUCT ...
    在Ocx控件被加载时,第一次调用OnSize事件实在控件中的各个部件未加载前,此时如果操作控件中的控件会出现控制针异常,需要提前判断。

    CTestDlg m_dlg;


    int CTestCtrl::OnCreate(LPCREATESTRUCT lpCreateStruct)
    {
    if (COleControl::OnCreate(lpCreateStruct) == -1)
    return -1;
    // TODO:  在此添加您专用的创建代码
    m_Mgr->WriteLog("1");
    m_dlg.Create(IDD_DLG, this);
    m_Mgr->WriteLog("2");
    return 0;
    }


    BOOL CTestDlg::OnInitDialog()
    {
    CDialogEx::OnInitDialog();


    // TODO:  在此添加额外的初始化
    m_mgr->WriteLog("1.1");
    vlcPlayer_ = new VLCWrapper();
    vlcPlayer_->SetOutputWindow(this->GetDlgItem(IDC_STATIC_VLC)->m_hWnd);  
    vlcPlayer_->SetEventHandler(&HandleVLCEvents, this);


    return TRUE;  // return TRUE unless you set the focus to a control
    // 异常: OCX 属性页应返回 FALSE
    }






    void CTestDlg::OnSize(UINT nType, int cx, int cy)
    {
    CDialogEx::OnSize(nType, cx, cy);


    // TODO: 在此处添加消息处理程序代码
    CString strLog;
    strLog.Format("OnSize Change [cx:%d] [cy:%d]",cx,cy);
    m_mgr->WriteLog(strLog);
    RecalcLayout(cx,cy);
    }


    void CTestDlg::RecalcLayout(int cx, int cy)
    {
    if(cx==0 && cy==0)
    {
    CRect rect;
    GetClientRect(&rect);
    cx=rect.Width();
    cy=rect.Height();
    }
    CWnd* _pWnd = this->GetDlgItem(IDC_STATIC1);
    if(_pWnd != nullptr){
    _pWnd->MoveWindow(CRect(1,1,cx-1, cy - 1));
    }
    }

    日志如下:
    2017-06-07 22:54:03  {----------------------OCX Init---------------------}
    2017-06-07 22:54:03  {1}
    2017-06-07 22:54:03  {OnSize Change [cx:467] [cy:359]}
    2017-06-07 22:54:03  {1.1}
    2017-06-07 22:54:04  {2}
    2017-06-07 22:54:04  {OnSize Change [cx:100] [cy:50]}
    2017-06-07 22:57:20  {------------------------------UnInit-----------------------}
    展开全文
  • BOOL CMatchingDlg::OnInitDialog() {     AfxMessageBox(“haha OnInitDialog”);...void CMatchingDlg::OnSize(UINT nType, int cx, int cy) {   AfxMessageBox(“hah...

    BOOL CMatchingDlg::OnInitDialog()
    {
      
     AfxMessageBox(“haha OnInitDialog”);

    CDialog::OnInitDialog();

    }

    void CMatchingDlg::OnSize(UINT nType, int cx, int cy)
    {
      AfxMessageBox(“haha onsize”); 
    }

    如果对话框的样式属性设置为:重叠。

    则先弹出"haha OnInitDialog"对话框,后弹出"haha onsize"。

    如果设置为“弹出”属性:

    则先弹出"haha onsize”对话框,后弹出“haha OnInitDialog"

    作者:caiqi1123
    来源:CSDN
    原文:https://blog.csdn.net/mvtechnology/article/details/9102171
    版权声明:本文为博主原创文章,转载请附上博文链接!

    展开全文
  • MFC窗体消息之尺寸被改变 OnSize()

    千次阅读 2017-07-30 08:13:58
    afx_msg void OnSize(  UINT nType,   int cx,   int cy  ); 参数nType 指定请求的调整大小的类型。  此参数可以是下列值之一:   SIZE_MAXIMIZED 窗口最大化。   SIZE_MINIMIZED 窗口最小化。  SIZE_...

    在窗口的大小更改后,框架调用该成员函数。

    afx_msg void OnSize(

       UINT nType, 

       int cx, 

       int cy 

    );


    参数nType 指定请求的调整大小的类型。

     此参数可以是下列值之一: 

       SIZE_MAXIMIZED 窗口最大化。 

       SIZE_MINIMIZED 窗口最小化。

       SIZE_RESTORED 窗口已调整大小,但是,SIZE_MINIMIZED 和 SIZE_MAXIMIZED 不适用。 

    在某些其他窗口最大化时,SIZE_MAXHIDE 发送到所有弹出窗口。 

    在某些其他窗口将还原为其以前的大小时,SIZE_MAXSHOW 发送到所有弹出窗口。

    cx

       指定工作区的新的宽度。

    cy

       指定工作区的新的高度。

    备注 :

       如果 SetScrollPos 或 MoveWindow 成员函数用于从 OnSize的子窗口调用,SetScrollPos 或 MoveWindow 的 bRedraw 参数应为非零导致 CWnd 会重新绘制。

    说明 :

       此成员函数由框架调用提供您的应用程序处理Windows消息。

       当接收消息,参数传递给函数以反映结构接收的参数。 

       如果调用此函数的基类实现, 该实现将使用参数最初用消息您提供给函数而非参数。

    头文件:

    Header: afxwin.h


    //窗体消息:尺寸被改变
    void CMFCApplication3Dlg::OnSize(UINT nType, int cx, int cy)  // cx 窗体宽度,cy窗体高度
    {
    	CDialogEx::OnSize(nType, cx, cy);
    	if (SIZE_MINIMIZED == nType)    //防止最小化时程序崩溃
    		return;
    	if (m_CList_Online.m_hWnd != NULL)
    	{
    		CRect rc;    
    		rc.left = 1;             //左坐标
    		rc.top = 80;             //上坐标
    		rc.right = cx - 1;       //右坐标
    		rc.bottom = cy - 160;    //下坐标
    		m_CList_Online.MoveWindow(rc);  //将列表框控件尺寸设置成rc的属性
    	}
    	if (m_CList_Message.m_hWnd != NULL)
    	{
    		CRect rc;
    		rc.left = 1;           //左坐标
    		rc.top = cy-156;       //上坐标
    		rc.right = cx - 1;     //右坐标
    		rc.bottom = cy - 6;    //下坐标
    		m_CList_Message.MoveWindow(rc);  //将列表框控件尺寸设置成rc的属性
    	}
    
    }

    这段代码的意思是:列表框尺寸随【窗体的尺寸的改变】而改变
    展开全文
  • 一个基于对话框的MFC界面,怎么样才能让对话框里的控件能和对话框同比例变小变大?今天我一直想解决这个问题,这是师姐留给我的任务。经过在网上的大量搜素,终于找到了解决方法,其实比较简单。  &...
  • MFC程序,在OnSize函数中怎么才能自动缩放MainFrame中的内容呢?写了半天没有思路,谢谢!
  • 经过了之前大量mfc已经明白了许多功能,但是之前的项目一直没有使用到mfc的菜单功能,菜单是Win32功能很常见的东西,这个也必须要懂。其实菜单的建立也很简单,配合之前的文件操作功能,已经能够把开始->附件->...
  • ----------------------------------------------------------------------------------...MFC编写时,经常需要在运行时动态调整窗口大小,并且使里面的控件和视图也随窗口的大小变化而发生相应变化。 在这之间,您需要
  • OnSize函数为变动后处理,此时窗口大小已变更,我们需要调整Dialog中的组件大小来适配窗口大小。例如:把edit窗口调宽一些  if ( 消息为调整消息 && 组件已构建)if (nType == SIZE_RESTORED && ::IsWindow(m_...
  • RT 我的项目把窗口进行分割,左边是的对话框可以控制右面是视图。窗口是通过CreateStatic进行分割,现在想从左边个类中添加这个语句PostMessage(pMain->m_hWnd,...但是CView中的OnSize函数执行不会执行,不知道怎么做?
  • 是不是调用OnSizeMFC系统就会调用MoveWindow函数,而不需要再另外调用了呢?
  • void CRightView::OnSize(UINT nType, int cx, int cy){CFormView::OnSize(nType, cx, cy); // TODO: 在此处添加消息处理程序代码CSize sizeTotal;sizeTotal.cx = cx;sizeTotal.cy = cy;SetScrollSizes(MM_TEXT, ...
  • void CChgWndDlg::OnSize(UINT nType, int cx, int cy) {  CDialog::OnSize(nType, cx, cy);  GetDlgItem(IDC_EDIT1)->MoveWindow(10,10,cx-20,cy-10); // 后面的那两个坐标要多减去10 }   注:要将窗
  • 最近用到窗口变化的一些东西,遇到几个相关的消息函数...分别对应相应的处理函数OnSize、OnSizing、OnGetMinMaxInfo。 当窗口大小发生变化时,响应的顺序依次是:WM_GETMINMAXINFO-->WM_SIZING-->WM_SIZE。  
  • MFC函数

    千次阅读 2016-06-27 00:05:58
    } 如果Child2中不实现那个虚函数,在调用的时候回调用父类的函数,所以就像MFC一样,给了用户一个借口,如果用户不实现,程序会默认去使用父类实现的虚函数,如果子类中实现了虚函数,那就使用子类默认的函数....
  • OnSize -> OnInitDialog -> OnPaint OnCreate:要创建一个窗口。 OnSize:用于窗口初始化前的一些参数设定。 OnInitDialog:初始化窗口,例如设置窗口字体、控件等。 OnPaint:在窗口上做一些...
  • MFC的消息处理函数

    千次阅读 2015-05-21 08:36:39
    转自:...该函数负责接收消息,找到消息所属的CWnd对象,然后调用AfxCallWndProc() 函数 2.AfxCallWndProc() 该函数负责保存消息(保存的内容主要是消息标识符和消息参数)供应用程序以后使用,然后
  • BEGIN_MESSAGE_MAP(CLibraryDlg, CDialogEx)  ON_WM_SIZE() END_MESSAGE_MAP() ...void CLibraryDlg::OnSize(UINT nType, int cx, int cy) { if (!m_pTabCtrl) m_pTabCtrl = (CTabCtrl *)GetDlgItem(IDC_T
  • 注意在对话框的OnInitDialog()函数中,由于对话框尚未显示,所以默认对话框左上角位于屏幕左上角。即此时调用GetWindowRect()获取的对话框区域左上角为(0,0)。 2. GetClentRect()获取的是自身客户区,其左上角以...
  • 在做一个简易total commander的时候,建立了两个FormView各占一边,分别在这两个视图类上放置了ListCtrl空间,然后用OnSize函数调整控件的显示,使控件可以占满视图,这是两个OnSize函数的实现,为什么只有一个调整...
  • BOOL dddd::OnInitDialog(){ // 代码区1 CDialog::OnInitDialog(); // 注:句1 // 代码区2} void dddd::OnSize(UINT nType, int cx, int cy){} 猜测:在程序调用的时候,OnInitDialog函数OnSize()应该相
  • MFC对话框及窗口函数调用顺序

    千次阅读 2017-11-30 11:49:48
    原文:... ... ...1、模式对话框的创建过程: ... 1)DoModal() 重载函数,重载DoModal()成员函数。  2) PreSubclassWindow() 重载函数,允许首先子分类一个窗口。  
  • MFC】如何手动发送WM_SIZE系统消息

    千次阅读 2019-10-28 08:41:47
    WM_SIZE作为系统的一个内置的核心消息,他是如何运作的呢? 通过本篇源码的解析 可以清楚的了解MFC内部消息的流向,这是作为C语言程序员理应了解的东西,以此消息为实例,我们便可以清楚的知道其他系统消息是如何...
  • 最近的项目是一个对话框的项目,之前没有做过这种项目,对OnSize和OnWindowPosChanged是没有深入地去学习过。自己对这一个知识还是一知半解。下面是一些实验的结果: 实验是一个对话框的工程,下面是一些执行的...
  • MFC最常用的类与API函数

    千次阅读 2017-09-13 11:12:51
    【精心整理】【实用】visual C++中最常用的类与API函数 标签: apic++nullwindows文件管理器图形 2012-03-06 22:11 12545人阅读 评论(24) 收藏 举报 分类: 【Visual C++】(38) ...
  • MFC常用的类及其成员函数简介

    千次阅读 2017-08-04 21:15:20
    MFC常用类及其成员函数  CRuntimeClass结构  在CRuntimeClass结构中定义了类名、对象所占存储空间的大小、类的版本号等成员变量及动态创建对象、派生关系判断等成员函数。每一个从CObject类派生的类都有一个...
  • MFC消息处理函数

    2014-07-31 12:32:05
    MFC的消息处理函数 1.AfxWndProc() 该函数负责接收消息,找到消息所属的CWnd对象,然后调用AfxCallWndProc 2.AfxCallWndProc() 该函数负责保存消息(保存的内容主要是消息标识符和消息参数)供应用程序以后使用,...
  • MFCON_COMMAND_RANGE()消息映射

    千次阅读 2016-04-03 20:12:12
    ON_COMMAND_RANGE多个按钮响应一个函数 ON_COMMAND_RANGE()使用注意事项 来源:ON_COMMAND_RANGE多个按钮响应一个函数 很久没来写博客了,都收到官方的邮件提醒再不写就不是专家会员,没办法只能再写一篇完成...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 12,649
精华内容 5,059
关键字:

mfconsize函数