资源描述:
《pb全角和半角字符的转换解决方案》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、PB中全角字符和半角字符之间的转换相关解决方案 一、 将字符串中的半角字符转换成全角字符(函数) //函数功能:将字符串中的半角字符转换成全角字符 //入口参数:in_str——准备进行转换的半角字符串 类型string //返回值: 转换成功的全角字符串 类型string string c_return="" long l0,l1,l2,l3,l4,i,c_leng,l_asc i=1 c_leng=len(in_str) do while i<=c_leng l_
2、asc=asc(in_str) if l_asc<=128 then if l_asc>=33 and l_asc<=126 then l1=int((l_asc+41856)/(16*16*16)) l0=mod((l_asc+41856),(16*16*16)) l2=int(l0/(16*16)) l0=mod(l0,(16*16)) l3=int(l0/16) l4=mod(l0,16) c_return=c_return+char(l1*16+l2)+c
3、har(l3*16+l4) else c_return=c_return+left(in_str,1) end if in_str=replace(in_str,1,1,"") i=i+1 else c_return=c_return+left(in_str,2) in_str=replace(in_str,1,2,"") i=i+2 end if loop return c_return 二、中英文输入法的切换及全角半角切换切换中英文输入法及全
4、角/半角?问题描述:如何切换中英文输入法及全角/半角、中英文字符等?解决方案:1、声明外部函数:functionbooleanImmSimulateHotKey(UnsignedLonghWnd,UnsignedLongdwHotKeyID)library"IMM32.dll"functionunsignedlongGetKeyboardLayout(unsignedlongwLayout)library"user32.dll"functionbooleanImmIsIME(unsignedLonghklKeyboardLayout)libra
5、ry"IMM32.DLL"2、在一个按钮里写:longll_hwndll_hwnd=handle(sle_1)IfnotImmIsIME(GetKeyboardLayout(0))Then ImmSimulateHotKey(ll_hwnd,16)EndIfImmSimulateHotKey(ll_hwnd,17)3、测试:运行后在TEXT中先输入逗号,均为半角,再点按钮后再输入逗号,均为全角 三、自动切换输入法比如把焦点切换到一个编辑框时,如何自动切换到你设置的输入法。也就是在程序中如何控制从一个输入法切换到另一个切换 ----------
6、----------------------------------------------------- 函数声明: function boolean ImmSimulateHotKey (ULong hWnd, ULong dwHotKeyID) library "IMM32.dll" function ulong GetKeyboardLayout(ulong dwLayout) LIBRARY "user32.dll" function boolean ImmIsIME(uLong hklKeyboardLayout) librar
7、y "IMM32.DLL" 脚本如下: constant int IME_THotKey_IME_NonIME_Toggle=16 //112 使用16才可以自动切换ulong hklCurrent ulong hnd //切换到英文输入法 hklCurrent=GetKeyboardLayout(0) if ImmIsIME(hklCurrent) then hnd=Handle(parent) ImmSimulateHotKey(hnd,IME_THotKey_IME_NonIME_Toggle) end if //切换到中
8、文输入法 hklCurrent=GetKeyboardLayout(0) if not ImmIsIME(hklCurrent) then hnd