Пример #1
0
BOOL cIMEWnd::OnMsg(HWND hWnd, UINT msg, WPARAM wparam, LPARAM lparam)
{
	if(!m_pDockingEx ) return FALSE;

	switch(msg)
	{
	case WM_IME_COMPOSITION:
	case WM_IME_CHAR:
		{
			return OnIMEComposition(hWnd, msg, wparam, lparam);
		}
		break;
	case WM_CHAR:
		{
			return OnChar(hWnd, msg, wparam, lparam);
		}
		break;
	case WM_KEYDOWN:
		{
			return OnKey(hWnd, msg, wparam, lparam);
		}
		break;
	case WM_KEYUP:
		{
			if( wparam == VK_CONTROL )
				m_bCtrlPushed = FALSE;
		}
		break;
	}
	return TRUE;
}
Пример #2
0
bool CImeView::IsYouMessage(UINT msg,WPARAM wparam, LPARAM lparam)
{
	if(!m_hWnd)
		return FALSE;
	switch (msg) { 
	  
	  case WM_IME_STARTCOMPOSITION:     // 글자 조합의 시작. WM_IME_COMPOSITION 메시지를           // 받을 준비를 한다. 
			OnIMEStartComposition(wparam,lparam);
         return TRUE;    
	  case WM_IME_ENDCOMPOSITION:          // 글자 조합의 끝. 조합된 문자열 처리를 끝낸다          break; 
			OnIMEEndComposition(wparam,lparam);
			///버튼 클릭시 현재 조합중이던 글자가 날라가 버리는 현상을 막기 위해
			///현재 Focus를 가지진 EditBox에 조합중이던 글자를 보내주고 처리하도록 한다.
			memset(m_TextComp,0,3);
         return TRUE;    
      case WM_IME_COMPOSITION:          // 현재 조합중인 문자열이나 완성된 문자열을 얻어서 화면 출력 
			OnIMEComposition(wparam,lparam);
			InvalidateRect(m_hWnd,NULL,TRUE);
         return TRUE;    
	  case WM_IME_SETCONTEXT:    // 글자 조합 윈도우와 한자 변환 윈도우를 표시하지 않게 바꿈 
			OnIMESetContext(wparam,lparam);
         return TRUE;    
      case WM_IME_NOTIFY:        
		  OnIMENotify(wparam,lparam);
         return TRUE;             
      case WM_INPUTLANGCHANGE:       // 키보드 레이아웃이 바뀌는 경우 IME를 초기화      
		  OnInputLangChange(wparam,lparam);
           return TRUE;    
	  case WM_IME_CONTROL:
		  OnIMEControl(wparam,lparam);
         return TRUE;    
	  case WM_IME_COMPOSITIONFULL:
		  OnIMECompositionFull(wparam,lparam);
         return TRUE;    
	  case WM_CHAR:
		  OnChar((UINT)wparam);
		  InvalidateRect(m_hWnd,NULL,TRUE);
		  break;
	  case WM_KEYDOWN:
		  
		  switch(wparam)
		  {
		  case VK_RETURN:
			  memset(m_TextComp, 0, sizeof(char) * 3);	
			  break;
		  case VK_SPACE:
			  memset(m_TextComp, 0, sizeof(char) * 3);	
			  break;
		  }
		  
		  break;

    }
	
	return FALSE;
}