MFC
다이얼로그 타이틀바의 클릭 & 드래그하여 이동하는 기능을 막는 방법
FreeChild
2010. 4. 3. 11:08
두개의 NON CLIENT MESSAGE를 함께 처리해야 하기 때문에 WindowProc 오버라이딩합니다.
[CLASS WIZARD] -> [Class Info] TAB -> 메시지 필터 (Chlid Window)로 선택하면
WindowProc 프로시저를 오버라이딩이 가능합니다.
LRESULT CCantMoveDlg::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
static bFlag = FALSE;
switch( message )
{
case WM_NCLBUTTONDOWN: // 넌 클라이언트 영역(캡션바)을 클릭했다면
bFlag = TRUE;
case WM_NCMOUSEMOVE: // 넌 클라이언트 영역을 클릭하고 있는 상태에서 이동한다면
if( bFlag )
{
bFlag = FALSE;
return TRUE; // 디폴트 윈도우 프로시저로 넘기지 않고 정상적인 처리로 리턴
}
return 0;
}
return CDialog::WindowProc(message, wParam, lParam);
}
Written By Sim-Hyeon, Choe