Heaven

Sprite.egloos.com

포토로그 마이가든



다이얼로그에서 ESC, ENTER 키 입력시 다이얼로그 사라짐 방지 외... MFC 잡동사니


PreTranslateMessage() 함수 내부에 아래 처럼 입력하면 된다.

BOOL CTestDlg::PreTranslateMessage(MSG* pMsg)
{
    if( pMsg->message == WM_KEYDOWN )
    {
        if( pMsg->wParam == VK_ESCAPE || pMsg->wParam == VK_RETURN )
        {
            /// 다른 컨트롤들이 메시지를 처리 할수 있도록 한다. 
            ::DispatchMessage(pMsg);
            ::TranslateMessage(pMsg);
            return TRUE;            
        }    
    }
    return CWnd::PretranslateMessage(pMsg);
}


다이얼로그에서 키 입력시 비프음이 발생하는 것을 방지하기.
역시 PreTranslateMessage() 함수 내부에서 처리한다.

BOOL CTestDlg::PreTranslateMessage(MSG* pMsg)
{
    if( pMsg->message == WM_CHAR)
    {
        if( pMsg->wParam == (방지할 가상 키값) )
        {
            return TRUE;            
        }    
    }
    return CWnd::PretranslateMessage(pMsg);
}


여기에는... MFC 잡동사니

MFC를 처음 접한것이 대학교 2학년때(2000년도)였나??(기억이...)
하튼 그때부터 근 10년간 다뤄보고 나름데로 쌓인 노하우를 정리하려한다.

첫 번째로...

데스크탑 윈도우 CDC포인터 얻는 방법.

HWND    hWnd = ::GetDesktopWindow();
CDC *pDC = CDC::FromHandle( ::GetDC(hWnd) );

::ReleaseDC( (*pDC) );

또는

HWND    hWnd = ::GetDesktopWindow();
CWnd *pWnd = CWnd::FromHandle( hWnd );
CDC *pDC = pWnd->GetWindowDC();

pWnd->ReleaseDC(pDC);



몇년만이냐... 낙서판

근 5년 만에 다시 왔다.. 아직 그대로 있구나..

다시 시작해보련다.


1