真的需要一些帮助 拖动子对话框时如何移动父对话框?
我有这样当我拖动父对话框时,子对话框也被移动,但不是相反的关系。
非常感谢任何帮助,谢谢!
我的主对话框.cpp:
void MainDialog::OnMove(int x, int y)
{
CDialog::OnMove(x, y);
m_pDialog->SetWindowPos(&wndTop, x, y, 50, 50, SWP_NOZORDER); // child dialog
}
BEGIN_MESSAGE_MAP(CTranslucentDialog, CDialog)
//AFX_MSG_MAP
ON_WM_ERASEBKGND()
ON_WM_MOVE()
ON_WM_SIZE()
ON_WM_CREATE()
ON_WM_LBUTTONDOWN()
END_MESSAGE_MAP()
谢谢,我能够通过为 NCHITTEST 创建处理程序并返回 HTTRANSPARENT 来让它工作。
LRESULT CGadgetStandardDialog::OnNcHitTest(CPoint point)
{
return HTTRANSPARENT;
}
最佳答案
问题是鼠标输入被 child 消耗了。因此,在子窗口中单击并拖动到那里,通常会选择子窗口中的一些数据(在编辑控件中)。或者对于静态控件,鼠标输入被转发到父级。
所以你。需要决定...您始终可以在 WM_NCHITTEST 中处理此问题并返回 HTCAPTION,或者您允许父级在返回 HTTRANSPARENT 中处理此问题。
顺便说一句:如果您也想在客户区实现用鼠标移动窗口,只需处理 WM_NCHITTEST 并返回 HTCAPTION。无需自己实现鼠标移动处理器。
关于c++ - 在MFC中拖动子对话框时如何移动父对话框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20369002/