簡體   English   中英

在MFC中拖動子對話框時如何移動父對話框?

[英]How do i move parent dialog when dragging child dialog, in MFC?

真的需要一些幫助如何在拖動子對話框時移動父對話框?

我有它,所以當我拖動父對話框時,子對話框也被移動,但不是反向關系。

任何幫助將不勝感激,謝謝!

我的主要對話框:

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;
}

問題是孩子消耗了鼠標輸入。 因此,單擊子窗口並在那里拖動,通常會在子窗口中選擇一些數據(在編輯控件中)。 或者對於靜態控件,鼠標輸入將轉發給父級。

那么你。 需要決定...你總是有能力在WM_NCHITTEST中處理它並返回HTCAPTION,或者你允許父進程在重新調整HTTRANSPARENT時處理它。

順便說一句:如果你想在客戶區使用鼠標移動窗口,那么只需處理WM_NCHITTEST並返回HTCAPTION。 沒有必要實現鼠標移動處理程序並自己完成。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM