精华内容
下载资源
问答
  • MFC窗体消息处理机制

    2020-12-07 10:11:47
    MFC窗体通信及消息处理机制详细讲解
    展开全文
  • MFC窗体消息之尺寸被改变 OnSize()

    千次阅读 2017-07-30 08:13:58
    //窗体消息:尺寸被改变 void CMFCApplication3Dlg::OnSize(UINT nType, int cx, int cy) // cx 窗体宽度,cy窗体高度 { CDialogEx::OnSize(nType, cx, cy); if (SIZE_MINIMIZED == nType) //防止最小化时程序...

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

    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窗体分割详解

    2015-10-29 11:13:15
    单文本文档中多次分割主窗体,开发环境Xp系统下的VS2008,下载即可使用,并且有详细的代码注释,新手可以看懂!
  • mfc窗体坐标相关函数

    千次阅读 2020-04-16 11:57:04
    mfc窗体以及其上的控件(都是Wnd类)拥有两套坐标系,一套是以屏幕左上角为原点(绝对坐标),一套是以某个窗体或控件自身的客户区的左上角为原点(相对坐标)。 CRect rect;// rect中存储的是Wnd的屏幕坐标 Wnd-...

    mfc中窗体以及其上的控件(都是Wnd类)拥有两套坐标系,一套是以屏幕左上角为原点(绝对坐标),一套是以某个窗体或控件自身的客户区的左上角为原点(相对坐标)。

    // rect中存储的是Wnd的屏幕坐标
    CRect rect;
    Wnd->GetWindowRect(&rect);
    
    // rect中存储的是Wnd的客户区,rect左上角为坐标原点。
    Wnd->GetClientRect(&rect);
    

    假设你想知道对话框Dlg上的某个控件Ctl在对话框的客户区的相对坐标,需要两步:

    先获得Ctl的绝对坐标rect,然后调用Dlg的ScreenToClient()将rect转换为相对坐标,具体代码如下:

     

    Ctl->GetWindowRect(&rect);
    Dlg->ScreenToClient(&rect);

    这里要注意的是,经常我们的窗体代码中会省略调用者,比如在调用者自己的消息处理函数中时,可以省略this->,我们就需要注意当前的Rect究竟是哪个窗体或控件的rect,调用ScreenToClient更需要注意是要将rect转换为相对于哪个Wnd的坐标。

     

    另外发现一点,就是GetClientRect函数的参数类型是LPRECT, 但是不加&符的CRect类型的变量传进去也没有问题,原来CRect重载了operator,见如下声明和实现:

     

    //convert between CRect and LPRECT/LPCRECT (no need for &)
    operator LPRECT() throw();
    operator LPCRECT() const throw();
    
    ATLTYPES_INLINE CRect::operator LPRECT() throw()
    {
    	return this;
    }
    
    
    ATLTYPES_INLINE CRect::operator LPCRECT() const throw()
    {
    	return this;
    }
    CRect lRect;
    GetClientRect( lRect );// 不加&符也没有问题

     

    展开全文
  • MFC窗体设计

    2013-12-29 20:38:43
    MFC窗体设计,实现窗体初始化位置,大小
  • MFC窗体编程

    2012-12-24 13:35:30
    Windows窗体(Form,形状/表单)原来是Visual Basic程序的用户界面,后来成为.NET程序的GUI,被Visual Studio中的C#、Visual Basic、F#、MC++和C++/CLI等开发语言工具所使用,后来又从Visual C++ 2005起被引入到MFC...
  • 代码如下:#include<afxwin>//包含MFC头文件//从MFC的主要框架窗体派生用户窗体类class CMyWnd:public CFrameWnd{public: CMyWnd(LPCTSTR szTitle) { //调用父类Create函数创建窗体 Create(NULL,szTitle);...
  • MFC窗体分割

    2012-04-16 23:04:21
    MFC窗体分割MFC窗体分割
  • MFC窗体透明显示

    2017-02-10 17:06:15
    MFC窗体透明显示,可能不是特别完美,但有借鉴的意义。
  • MFC 透明窗体画不透明的线
  • 第一步,在resource.h中添加 static UINT WM_...第二步,在消息接受的窗体,对话框的类的头文件.h添加 public: afx_msg LRESULT OnMsgReceive(WPARAM wParam, LPARAM lParam); 第三步,在消息接受的窗体,对话框...

    第一步,在resource.h中添加  static UINT WM_MSG_MYMSG = RegisterWindowMessage(_T("msg"));

    第二步,在消息接受的窗体,对话框的类的头文件.h添加 

    public:
        afx_msg LRESULT OnMsgReceive(WPARAM wParam, LPARAM lParam);

    第三步,在消息接受的窗体,对话框的类的实现文件.cpp添加

    LRESULT 你的对话框类::OnMsgReceive(WPARAM wParam,LPARAM lParam)
    {
       //要做的事,其中 wParam 和  lParam 是消息发送过来的参数,用自定义指针强转一下就可以得到传递的值了
        return 0;
    }

    第四步,在MESSAGE_MAP中添加映射

    BEGIN_MESSAGE_MAP(你的对话框类, CDialogEx)
        ON_REGISTERED_MESSAGE(WM_MSG_MYMSG,OnMsgReceive)  //为消息添加映射函数
    END_MESSAGE_MAP()

    第五步,在你想发送消息的地方发送消息

    void 子类对话框::Onxxx(...)
    {

        int r=5;

        WPARAM a=(WPARAM)this;//子窗体的本身的实例指针
        LPARAM b=(LPARAM)&r;  //一个int

        GetParent()->SendMessage(WM_MSG_MYMSG,a,b);

    }

    至此,子窗体向父窗体消息发送已经完成

     

    展开全文
  • c#向MFC窗体发送消息

    2017-05-16 11:18:49
    c#向MFC窗体发送消息,C#中调用Win32中的API,
  • 基于c++MFC窗体的俄罗斯方块,使用vs2013编写,没有用其他库什么的用vs2013直接就可运行,包含整个项目文件以及实验报告,是c++课程等大作业的绝佳参考,项目文件400多M,压缩后98.4M。
  • MFC 窗体样式修改

    2019-06-24 19:26:21
    窗体创建之后,如何设置窗体的样式呢?...关于MFC存在GetWindowLongW和GetWindowLongA使用哪一个,可以通过 IsWindowUnicode(this->m_hWnd)获取是使用哪一类型,true则使用GetWindowLongW反之使用G...
  • MFC发送消息与接收消息的例子

    热门讨论 2011-11-06 16:11:14
    用PostMessage实现的一个发送消息与接收消息的例子
  • MFC窗体UI类库

    2014-05-14 09:16:45
    MFC窗体UI类库,可以使你的界面美化,整理的,挺好用的,特发上来
  • MFC -窗体自适应大小

    千次阅读 2019-11-26 09:06:17
    void CserialcommunicationDlg::OnSize(UINT nType, int cx, int cy) { ... // TODO: 在此处添加消息处理程序代码 if (nType == SIZE_RESTORED || nType == SIZE_MAXIMIZED) { Resize(); ...
  • MFC自绘窗体源代码

    2015-11-12 14:18:28
    基于CWINAPP AND CWND自绘,实现了基本的WINDOWS窗体自绘。本案例稍加修改即可完成市面上所有windows下的UI外观设计。
  • mfc的父子窗体调用

    2014-12-13 21:46:48
    此程序目的主要演示父子窗体的调用,另外演示按钮事件驱动向文本框里面填写文本 ,此程序主要参考http://blog.csdn.net/kingsollyu/article/details/8312910
  • MFC实现透明窗体

    2013-12-13 09:52:20
    MFC实现透明窗体,窗体美观实用,代码简练
  • 1:创建项目: ...添加新窗体 双击确认按钮 选择这个 填写类名字 回到第一个窗体 添加按钮: 双击按钮进入事件: 在顶部 引用新创建窗体.h文件 然后调用窗体打开: 就可以了 ...
  • 关闭MFC窗体

    2013-12-29 20:36:45
    MFC窗体设计,实现关闭窗体,c++实现
  • 窗体及控件背景色窗体及控件背景色窗体及控件背景色窗体及控件背景色窗体及控件背景色窗体及控件背景色
  • 2.在类向导里面(Ctrl+W),为窗体添加消息WM_SIZE的响应函数OnSize(); 注意if(nType==1) return;这一句必须添加,否则最小化恢复的时候会出错。 void CPaperManagementDlg::OnSize(UINT nType, int cx, int cy) ...
  • mfc窗体多次分割

    2015-10-29 13:41:59
    mfc但文本文档中进行多次窗体分割,并在分割后的view窗口中内嵌对话框! 开发环境xp系统VS2008,下载即可使用! 不用担心积分过高!下载资源后评论,积分会返回到你的账户的!
  • MFC窗体分割程序

    2013-11-05 20:47:41
    基于VC6.0实现窗体分割,并在各个窗口显示不同的图片
  • 约瑟夫环MFC窗体

    2013-04-12 16:16:47
    约瑟夫环MFC窗体版源码 在VS2008中开发

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 17,626
精华内容 7,050
关键字:

mfc窗体消息