一个程序
2个窗口
A是主窗口
B是附窗口B紧贴在A上当A移动的时候,响应OnMove()
然后发出一个消息给B(SendMessage),B接到这个消息以后重新获取A的坐标,然后使用MoveWindow()移动自己的位置现在发现
当拖动A移动位置的时候,B也会移动,但是窗口B的移动会造成很多拖动的痕迹,虽然会自动清除掉
但是还是比较明显不像Windows的对话框,虽然也有痕迹,但是不明显请问如何解决?相关代码是CB *pB = new CB();void CADlg::OnMove(int x, int y)
{
CDialog::OnMove(x, y); HWND hWnd = pB->m_hWnd ;
::SendMessage (hWnd, WM_USER_MAINWINDOW_MOVE, 0, 0);
}LONG CB::OnMainWindowMove(WPARAM wParam,LPARAM lParam)
{
CA *pdlg = (CA*)AfxGetApp()->GetMainWnd(); RECT rcMain,rcSelf; //rcMain指窗口A,rcSelf指窗口B
UINT nMainWidth; pdlg->GetWindowRect (&rcMain);
this->GetWindowRect (&rcSelf);
nMainWidth = rcMain.right - rcMain.left ;
this->MoveWindow (rcMain.left,
rcMain.bottom ,
rcMain.right - rcMain.left ,
rcSelf.bottom - rcSelf.top ,
1);
return TRUE;
}
2个窗口
A是主窗口
B是附窗口B紧贴在A上当A移动的时候,响应OnMove()
然后发出一个消息给B(SendMessage),B接到这个消息以后重新获取A的坐标,然后使用MoveWindow()移动自己的位置现在发现
当拖动A移动位置的时候,B也会移动,但是窗口B的移动会造成很多拖动的痕迹,虽然会自动清除掉
但是还是比较明显不像Windows的对话框,虽然也有痕迹,但是不明显请问如何解决?相关代码是CB *pB = new CB();void CADlg::OnMove(int x, int y)
{
CDialog::OnMove(x, y); HWND hWnd = pB->m_hWnd ;
::SendMessage (hWnd, WM_USER_MAINWINDOW_MOVE, 0, 0);
}LONG CB::OnMainWindowMove(WPARAM wParam,LPARAM lParam)
{
CA *pdlg = (CA*)AfxGetApp()->GetMainWnd(); RECT rcMain,rcSelf; //rcMain指窗口A,rcSelf指窗口B
UINT nMainWidth; pdlg->GetWindowRect (&rcMain);
this->GetWindowRect (&rcSelf);
nMainWidth = rcMain.right - rcMain.left ;
this->MoveWindow (rcMain.left,
rcMain.bottom ,
rcMain.right - rcMain.left ,
rcSelf.bottom - rcSelf.top ,
1);
return TRUE;
}
解决方案 »
- xml中的CDATA用XSL提取显示的问题
- 图像画笔 VC
- 窗口添加了菜单之后,不可以处理ALT键!
- 有server监听的时候,能够建立连接,但是客户端收不到FD_CONNECT网络事件(值为16)(为什么),收到的事件值是18.但是如果没有server监听的时候
- 如何读写DLL中的变量??
- 程序编译和连接都通过了,但是运行的时候出现了下面的问题,请看看
- 如何改变ListCtrl中的字体大小
- 电脑通过svideo(S端子)将屏幕输出到电视,可是文字很模糊?为什么?怎样解决?
- 请问vc中的描述控件大小的是什么单位,怎么和像素不一致,应该如何换算
- 关于odbc & mfc
- listview控件实时监控的问题!(带代码,解决200分)
- 如何发送一个消息使
SetRedraw(FALSE);
this->MoveWindow (rcMain.left,
rcMain.bottom ,
rcMain.right - rcMain.left ,
rcSelf.bottom - rcSelf.top ,
1);
SetRedraw(TRUE);
不行
移动以后新的窗口没有被正常重绘
而旧的还存在
我到建议你看看下面这篇文章:
http://www.codeproject.com/dialog/killpopups.asp
他是在一个主对话框上放了一个picture控件,作为placeholder,然后把几个子对话框嵌上去的
整个过程规范且具有很强的指导意义,实际应用效果也很好