Localizing OLE controls using AmbientLocaleID
Kristoffer -- gjevre@filenet.com Wednesday, March 05, 1997 Environment: VC++ 4.2b Win NT 4.0 The PROBLEM is that in VB 4.0 and VB 5.0 the LocaleID returned is always English. I have an OLE Control written in VC++/MFC 4.2b on Win NT 4.0 that does the following to determine what version of the localized resources to use (this is loosely based on the "VC++ Books, MFC 4.2, Programming with MFC: Encyclopedia, OLE Controls , OLE Controls: Localizing an OLE Control" document): void CMyLocCtrl::OnSetClientSite() { COleControl::OnSetClientSite(); LCID lcid = AmbientLocaleID(); // Get resources based on LCID is not shown. } void CMyLocCtrl::OnAmbientPropertyChange(DISPID dispid) { if (dispid == DISPID_AMBIENT_LOCALEID) { LCID lcid = AmbientLocaleID(); // Get resources based on LCID is not shown. InvalidateControl(); } } void CMyLocPropPage::OnSetPageSite() { LCID lcid = 0; LPPROPERTYPAGESITE pSite = GetPageSite(); if (pSite != NULL) pSite->GetLocaleID(&lcid); COlePropertyPage::OnSetPageSite(); } The LocaleID returned when the control is used in the VC++ OLE Control Test Container matches the Regional Settings. The ambient LocaleID can also be changed in the OLE Control Test Container, and the control reacts correctly to it. (The only annoyance is that CMyLocCtrl::OnSetClientSite gets called initially and when we exit, in which case AmbientLocaleID returns 0). The PROBLEM is that in VB 4.0 and VB 5.0 the LocaleID returned is always English. I have tried this on both Win 95 and Win NT, and it happens in design mode when I drop the control in, in debug mode, and when running the VB EXE. Am I missing something here? Kristoffer Gjevre gjevre@filenet.com
Mike Blaszczak -- mikeblas@nwlink.com Thursday, March 06, 1997 At 12:18 3/5/97 -0800, "Gjevre, Kristoffer"wrote: >Environment: VC++ 4.2b Win NT 4.0 >The PROBLEM is that in VB 4.0 and VB 5.0 the LocaleID returned is always >English. > [...] >The PROBLEM is that in VB 4.0 and VB 5.0 the LocaleID returned is always >English. I have tried this on both Win 95 and Win NT, and it happens in >design mode when I drop the control in, in debug mode, and when running the >VB EXE. It seems then that this is "PROBLEM" actually with VB and not MFC. Doesn't it? .B ekiM http://www.nwlink.com/~mikeblas/ These words are my own. I do not speak on behalf of Microsoft. This performance was not lip-synched.
Become an MFC-L member | Вернуться в корень Архива |