摘要: VC++之根据对话框大小调整控件大小1、在对话框类中加入成员变量CRect m_rect;用于保存对话框大小变化前的大小;2、在对话框的OnInitDialog()函数中获取对话框创建时的大小:GetClientRect(&m_rect);3、在WM_SIZE的响应函数OnSize()中加入以下代码:CWnd *pWnd; pWnd = GetDlgItem(IDC_LIST); //获取控件句柄if(pWnd)//判断是否为空,因为对话框创建时会调用此函数,而当时控件还未创建{ CRect rect; //获取控件变化前大小 pWnd->GetWindowRect(&r 阅读全文
posted @ 2013-09-21 21:47 jingcheng 阅读(1335) 评论(0) 推荐(0)
摘要: 最近用到窗口变化的一些东西,遇到几个相关的消息函数,简要分析,作为备忘。3个消息分别是:WM_SIZE、WM_SIZING、WM_GETMINMAXINFO;分别对应相应的处理函数:OnSize、OnSizing、OnGetMinMaxInfo。当窗口大小发生变化时,响应的顺序依次是:WM_GETMINMAXINFO-->WM_SIZING-->WM_SIZE。OnGetMinMaxInfo这个函数在窗口初始化的时候会被调用一次,当窗口大小发生改变的时候也会被调用。利用这个函数,可以比较方便的实现窗口最大最小尺寸的控制。参数lpMMI是一个结构体指针,其中包含了有关窗口的最大化大小 阅读全文
posted @ 2013-09-21 19:47 jingcheng 阅读(1150) 评论(0) 推荐(0)
摘要: VC对话框运行后不能改变大小的问题收藏今天建立了个基于对话框的mfc工程,运行后发现对话框不能改变大小,而且没有最大化最小化按钮。进寻找后发现:通过对话框的属性的maxize和minize可以设置是否具有最大化和最小化按钮,但是仍然不能改变大小。但是经过一番搜索,发现在对话框的Oninitdialog加一句ModifyStyle(NULL,WS_THICKFRAME);可以设置对话框能够改变大小。时候总结发现,要想让对话框具有改变大小的功能需要在两个地方进行设置,一个是在OnInitDialog中加一句ModifyStyle(NULL,WS_THICKFRAME);另外一个就是必须在对话框属性 阅读全文
posted @ 2013-09-21 19:22 jingcheng 阅读(801) 评论(0) 推荐(0)
摘要: 最近开始学习MFC,之前一直想学,但是却没有狠下心去学。现在工作了,发现还是很有用的,于是利用这个契机,学习下mfc。先看了孙鑫的教科书,他讲的很好,很详细,大致了解了mfc,然后也看了网络上各种牛人的帖子,学习了。GetWindowRect是取得窗口在屏幕坐标系下的RECT坐标(包括客户区和非客户区),这样可以得到窗口的大小和相对屏幕左上角(0,0)的位置。 GetClientRect取得窗口客户区(不包括非客户区)在客户区坐标系下的RECT坐标,可以得到窗口的大小,而不能得到相对屏幕的位置,它的top和left都为0,right和botton是宽和高,因为这个矩阵是在客户区坐标系下(... 阅读全文
posted @ 2013-09-21 16:51 jingcheng 阅读(630) 评论(0) 推荐(0)