srvet_claudio wrote:
...
is this what you wanted ?
Frankly no
I did not think it would be so good
Perfect

( as always )
Thank you very much doc
Code: Select all
#include <hmg.ch>
PROCEDURE Main
aLanguages := { { 'Arabic', 0x0401 },;
{ 'English', 0x0409 },;
{ 'French', 0x040C },;
{ 'Polish', 0x0415 },;
{ 'Portuguese', 0x0416 },;
{ 'Turkish', 0x041F },;
{ 'Persian', 0x0429 },;
{ 'Azeri', 0x042C },;
{ 'Spanish', 0x040A } }
aLangNames := {}
aLangCodes := {}
AEVAL( aLanguages, { | a1 | AADD( aLangNames, a1[ 1 ] ), AADD( aLangCodes, a1[ 2 ] ) } )
cCurr_KLName := GetKeyboardLayoutName()
nCurr_KLNo := CTON( cCurr_KLName, 16 )
nInsKLNo := ASCAN( aLangCodes, nCurr_KLNo ) // Installed KBL no
DEFINE WINDOW Form_Main ;
AT 0,0 ;
WIDTH 600 HEIGHT 480 ;
MAIN ;
TITLE "VIVA INTERNATIONAL HMG !"
ON KEY ESCAPE ACTION ThisWindow.Release
@ 50, 20 EDITBOX editbox_1 WIDTH 550 HEIGHT 350 VALUE ""
@ 20, 20 COMBOBOX cmbLangs WIDTH 550 HEIGHT 350 ITEMS aLangNames ON CHANGE ChangeUILang( This.Value ) VALUE nInsKLNo
END WINDOW
CENTER WINDOW Form_Main
ACTIVATE WINDOW Form_Main
RETURN
*-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.
PROCEDURE ChangeUILang(;
nSelected )
nCurr_KLNo := aLangCodes[ nSelected ]
ActivateKeyboardLayout( nCurr_KLNo )
RETURN // ChangeUILang()
*-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.
*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#pragma BEGINDUMP
#include "SET_COMPILE_HMG_UNICODE.ch"
#include "HMG_UNICODE.h"
#include <windows.h>
#include <tchar.h>
#include "hbapi.h"
HB_FUNC ( GETKEYBOARDLAYOUTNAME )
{
TCHAR cKLID [ KL_NAMELENGTH + 1 ];
GetKeyboardLayoutName (cKLID);
HMG_retc (cKLID);
}
HB_FUNC ( ACTIVATEKEYBOARDLAYOUT )
{
HKL hkl = (HKL) HMG_parnl (1);
UINT Flags = (UINT) hb_parni (2);
HKL old_hkl = ActivateKeyboardLayout (hkl, Flags);
HMG_retnl ((LONG_PTR) old_hkl );
}
HB_FUNC ( GETKEYBOARDLAYOUTLIST )
{
int nCount = GetKeyboardLayoutList (0, NULL);
if ( nCount > 0 )
{ int i;
hb_reta (nCount);
HKL List [nCount];
GetKeyboardLayoutList (nCount, List);
for (i=0; i < nCount; i++)
HMG_storvnl ((LONG_PTR) List [i], -1, i+1);
}
}
HB_FUNC ( LOADKEYBOARDLAYOUT )
{
// http://msdn.microsoft.com/en-us/library/windows/desktop/dd318693(v=vs.85).aspx
TCHAR *cKLID = (TCHAR*) HMG_parc (1);
UINT Flags = (UINT) hb_parni (2);
HKL hkl = LoadKeyboardLayout (cKLID, Flags);
HMG_retnl ((LONG_PTR) hkl );
}
HB_FUNC ( UNLOADKEYBOARDLAYOUT )
{
HKL hkl = (HKL) HMG_parnl (1);
hb_retl ((BOOL) UnloadKeyboardLayout (hkl));
}
#pragma ENDDUMP

- UI_Lang Select screen shoot
- UI_Lang.jpg (89.81 KiB) Viewed 3664 times