使一个非模态对话框随另一个对话框的移动而移动
来源:互联网 发布:简单c语言代码 编辑:程序博客网 时间:2024/06/09 15:48
主对话框A, 非模态对话框B。 使移动A时, B 随着A 的移动而移动
在A中添加B 的指针变量
mydlg *dlg ;
某个按钮显示代码
dlg = new mydlg();
dlg->Create(IDD_DIALOG1, this);
dlg->ShowWindow(SW_SHOW| SW_NORMAL);
A 中添加虚函数
LRESULT CheadMoveDlgDlg::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
// TODO: 在此添加专用代码和/或调用基类
switch(message)
{
case WM_MOVING:
{
if(m_bBtnDn)
{ HWND hwnd;
CRect rtWnd;
dlg->GetClientRect(&rtWnd);
ClientToScreen(&rtWnd);
::SetWindowPos(dlg->GetSafeHwnd(), NULL, rtWnd.left, rtWnd.top, 0, 0, SWP_SHOWWINDOW | SWP_NOSIZE);
}//::GetDlgItem(parentHwnd,IDC_DIALOG);
else
{
m_bBtnDn = false;
}
}
break;
case WM_NCLBUTTONDOWN:
m_bBtnDn = true;
break;
default:
break;
}
return CDialogEx::WindowProc(message, wParam, lParam);
}
注意:
dlg->GetClientRect(&rtWnd);
ClientToScreen(&rtWnd);
::SetWindowPos(dlg->GetSafeHwnd(), NULL, rtWnd.left, rtWnd.top, 0, 0, SWP_SHOWWINDOW | SWP_NOSIZE);
是根据B 对话框一直在B 相对A的初始位置
若改以下:
GetClientRect(&rtWnd);
ClientToScreen(&rtWnd);
::SetWindowPos(dlg->GetSafeHwnd(), NULL, rtWnd.left, rtWnd.top, 0, 0, SWP_SHOWWINDOW | SWP_NOSIZE);
是B和A并排移动。具体可以看一下参数,根据需求修改
- 使一个非模态对话框随另一个对话框的移动而移动
- 无标题对话框的移动
- 对话框的移动
- 移动对话框
- WM_NCHITTEST无标题对话框的移动
- 移动无标题对话框的方式
- 限制对话框的移动范围
- MFC 对话框上画矩形,怎么让矩形跟着对话框移动而移动
- 键盘移动对话框
- MFC 移动无标题对话框
- MFC 移动无标题对话框
- 禁止移动对话框窗口
- 移动端model对话框
- 在一个对话框中访问另一个对话框的变量
- 一个对话框调用另一个对话框的控件值
- WM_NCHITTEST的作用:移动对话框,动态修改对话框标题
- mfc自绘对话框(无边框、可移动的对话框)
- EVC中怎样使弹出的对话框不能移动
- Django个人博客
- Java中日期数据类型的处理之格式转换
- 【HDU 4373】【Lucas定理+中国剩余定理】 Mysterious For
- 初级_进行修改操作的时候jsp中数据的回显
- 实现贪吃蛇
- 使一个非模态对话框随另一个对话框的移动而移动
- 图像增强
- 验证码
- 通过html来部分显示字符串,并用…显示
- C#以HTTP方式导出XML类型列,并弹出保存框
- 静态代码块、普通代码块、构造块等执行顺序
- AJAX--异步JavaScript和xml
- 使用libcurl实现tcp通信
- 212. Word Search II 在二维字母表里找到给定word集合中的word子串