if(pWnd)//判断是否为空,因为对话框创建时会调用此函数,而当时控件还未创建 { CRect rect; //获取控件变化前大小 pWnd->GetWindowRect(&rect); ScreenToClient(&rect);//将控件大小转换为在对话框中的区域坐标 // cx/m_rect.Width()为对话框在横向的变化比例 rect.left=rect.left*cx/m_rect.Width();//...
2 但是整个对话框或窗口的字体的大小,使用对话框或窗口的SetFont()函数却没有任何的作用.可以在初始化时遍历每个控件分别设置来处理,但这里说另一种使用回调函数的简单方法: :调用系统的API:::EnumChildWindows(). ,传入回调函数和重新定义的字体.(第一个参数不用管啊,本来就有啊) ) 1)在文档视图结构中CMainFr...
从这个类继承的对话框类,只要在OnInitDialog()里对控件做一些简单的设置,对话框上的控件就会随着对话框大小的改变而改变自己的位置和大小(当然,别忘了把对话框的Border属性改为Resizing)。 为了保存控件信息,我定义了一个结构: typedef struct _dlgControlTag { int iId; // 控件ID int iFlag; // 标志,表示...
在VC++6.0中,你可以在资源编辑器列表中(左侧Resource页)右键点击已经建立的对话框,选择“Insert Copy”就可以建立大小完全相同,并且控件都复制过来的对话框。复制过程中要注意,你需要先添加一个Condition(随便输入英文字母),然后再右键复制好的对话框,将对话框ID修改为不重复的新对话框ID,再去掉...
WM_SYSCOMMAND,SC_MAXIMIZE);//最大化显示\x0d\x0aPostMessage(WM_SYSCOMMAND,SC_MAXIMIZE);//最大化显示\x0d\x0a注:SendMessage是随调随用,PostMessage是把消息发送到消息队列,一个一个执行,看你怎么用了\x0d\x0a\x0d\x0a} ...
一、禁止对话框的移动 (1)、第一种方法 为这个对话框添加系统消息过虑处理: .h中: ... afx_msg void OnSysCommand(UINT nID, LPARAM lParam); ... .cpp中 BEGIN_MESSAGE_MAP(CXXXDlg, CDialog) ... ON_WM_SYSCOMMAND() ... END_MESSAGE_MAP() ...
在BEGIN_MESSAGE_MAP中加入:ON_WM_GETMINMAXINFO()然后就可以设置其窗口的大小了,比如下面这个,设置最小的尺寸为600×480。void CConfigDlg::OnGetMinMaxInfo(MINMAXINFO* lpMMI){ lpMMI->ptMinTrackSize.x= 600;lpMMI->ptMinTrackSize.y= 480;} ...
CRect rect;GetWindowRect(rect);即可获得本身大小。至于你怎么传递,要看对话框的模式了,如果非模态,都回写到父窗口并访问就行了。
首先创建一个基于对话框的MFC工程,为了让对话框可以通过拖拽边框自由改变大小,需要设置对话框的属性。打开资源视图,在对话框上点右键,选择Properties->Styles->Border,在下拉框中选择Resizing,这样就可以动态改变对话框的大小了。有两个函数可以实现这个功能:(1) MoveWindow():void MoveWindow(int x,...