需要保证: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.
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)//将变化后的对话框大小设为旧大小
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)