본문 바로가기
개발/C++,MFC

[MFC] '자식창'드래그 시 '부모창'도 드래그

by 언제나초심. 2012. 10. 10.
반응형



LRESULT CMain::OnNcHitTest(CPoint point)
{
    UINT hit = CDialog::OnNcHitTest(point);//포인터를 받아서 영역값을 리턴.

    //창 이동시 메인프레임도 같이 움직이는 동작 부분.
    if(hit == HTCLIENT){
        CDialogEx *pDlg = reinterpret_cast(GetParent());
        pDlg->SendMessage(WM_NCLBUTTONDOWN, HTCAPTION, MAKELPARAM(point.x, point.y));
    }
    return hit;
}



메모해둠

*pDlg 는 포인터형이므로, Dialog 나 DialogEX 나 상속을 받고 있는 부모창의 클래스명이거나,

적절히 쓰면 될 듯 하다. 

중요한 것은 GetParent() 하는 것과

그곳으로 SendMessage를 날리는 것으로 보인다. 


다이얼로그 속성 중 Style 값이 Child 이어야 한다.

Popup 일 경우는 doModal 로 호출을 하거나, 어떠한 방법으로 띄우거나 하는데, Hittest 메시지가 잘 안 날라가는 것으로 보인다.

반응형