U++ framework
Do not panic. Ask here before giving up.

Home » U++ Library support » U++ Libraries and TheIDE: i18n, Unicode and Internationalization » Japanese IME test code
Re: Japanese IME test code [message #15506 is a reply to message #15099] Sun, 27 April 2008 04:05 Go to previous messageGo to previous message
mobilehunter is currently offline  mobilehunter
Messages: 87
Registered: November 2006
Member
Here are new implementation.
Tested against EditCtrl only.

at CtrlCore.h:
virtual Font   GetIMEFont();
virtual Point  GetIMEPoint();


at Ctrl.cpp:
//default implementation
Font Ctrl::GetIMEFont()
{
	return StdFont();
}

Point Ctrl::GetIMEPoint()
{
	POINT pt;
	GetCaretPos(&pt);//still not upp-wise :)
	
	return Point(pt);
}


at win32proc.cpp:
case WM_IME_STARTCOMPOSITION:
{
	Ctrl*f=GetFocusChild();
		
	HWND hwnd =GetHWND();
	Point imePt = f->GetIMEPoint();
	Font imeFont = f->GetIMEFont();

	COMPOSITIONFORM cf;
	cf.dwStyle = CFS_POINT;
	cf.ptCurrentPos.x = imePt.x;
	cf.ptCurrentPos.y = imePt.y;
		
	LOGFONT lf;
	HIMC hIMC = ImmGetContext(hwnd);
		
	ImmGetCompositionFont(hIMC,&lf);
	lf.lfHeight = -imeFont.Info().GetHeight();
	ImmSetCompositionFont(hIMC, &lf);	
		
	ImmSetCompositionWindow(hIMC, &cf);
	ImmReleaseContext(hwnd, hIMC);
}
break;
 
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic: How to retrieve current language?
Next Topic: CJK characters can be higlighted as keywords
Goto Forum:
  


Current Time: Tue Jun 23 01:52:56 GMT+2 2026

Total time taken to generate the page: 0.00748 seconds