MFC 对话框建立后怎么增加最小化和最大化按钮

MFC 对话框建立后怎么增加最小化和最大化按钮,第1张

其实要显示最大化最小化按钮,需要多种属性组合才能实现;

需要保证:Border 为resizing;SystemMenu为true;TitleBar为true

其他的还不知道有没有影响

Get、SetWindowLong

vc6mfc对话框工程, 插入另一个对话框资源 类向导给他建立类

主对话框头文件 中添加新加的类的头文件

主对话框类 定义中添加新类的指针 (用于建立非模态的新对话框)

主对话类添加WM_CLOSE 、WM_TIMER消息响应函数

主对话框类OnInitDialog SetTimer启动定时器

主对话框类OnTimer函数定义static变量用于倒计时

没事WM_TIMER消息来i--

判断是否减到-1,减到-1  KillTimer停止定时器 且 p = new CDlg

p-Create...  建立非模态对话框

在ShowWindow之前 Get、SetWindowLong   修改窗口样式

OnClose中delete new的指针

当然你可以自己去试验 把 修改窗口样式那段写到 新对话框的OnInitDialog中

对话框属性->样式,勾上最大化框。

再在类向导里,选择WM_SIZE,然后Edit Code.

VC++全屏时,根据对话框大小调整控件大小

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)//将变化后的对话框大小设为旧大小


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11835311.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存