1、小键盘的编码 参照紫光拼音3.0的小键盘编码方式 当没有对应的串值的时候应该不向文档中添加东东这里用na占位 常用符号: 0 1 2 3 4 5 6 7 8 9 a b c d e f g h i j k l m n o p q r s t u v w x y z ; = , - . / ` [ \ ] ' ⑽⑴⑵⑶⑷⑸⑹⑺⑻⑼■α∑▲⒊●★【⒏】『‘γβ⒐⒑⒈⒋◆⒌⒎§⒉‰⒍$;=,-。/`[、]’ ㈩㈠㈡㈢㈣㈤㈥㈦㈧㈨□±∏△Ⅲ○☆〖Ⅷ〗』“÷×ⅨⅩⅠⅣ◇ⅤⅦ※Ⅱ℃Ⅵ¥:+《_》?~{?}” 标点符号: 0 1 2 3 4 5 6 7 8 9 a b c d e
2、f g h i j k l m n o p q r s t u v w x y z ; = , - . / ` [ \ ] ' ˉ,、;:?!…—·〔(【〈“〉《》∶「」『[)"'‘”〕々‖】’〗~〖』¨]ˇ{}。`〃|. nanananananananananananananananananananananananananananananananananananananananananananananana 特殊符号 0 1 2 3 4 5 6 7 8 9 a b c d e f g h i j k l m n o p q r s t u v w x y z ; = , -
3、 . / ` [ \ ] ' nananananananananana■^@▲☆※→←◇↑↓〓 ̄_◆□§★△○◎\№&●#nanananananananananana 没有上档键对应的串值 表格线 0 1 2 3 4 5 6 7 8 9 a b c d e f g h i j k l m n o p q r s t u v w x y z ; = , - . / ` [ \ ] ' ┄┍┎┏┐┑┒┓na─┬╀┾┮┞┯┰┱┣┲┳na╂╁na│├┟┭┠┢┿┝┽┡┼nana╃┈nana┌┆na┊na ┅┕┖┗┘┙┚┛na━┴╈┶┶┦┷┸┹┫┺┻na╊╉na┃┤┧┵┨┪╇┥
4、╅┩╄nana╋┉nana└┇na┋na 数字序号 0 1 2 3 4 5 6 7 8 9 a b c d e f g h i j k l m n o p q r s t u v w x y z ; = , - . / ` [ \ ] ' ⅪⅡⅢⅣⅤⅥⅦⅧⅨⅩ㈠⑸⑶㈢⒊㈣㈤㈥⒏㈦㈧㈨⑺⑹⒐⒑⒈⒋㈡⒌⒎⑷⒉⑵⒍⑴㈩na⑻Ⅻ⑼⑽Ⅰnananana nanananananananananana①⒂⒀③⒔④⑤⑥⒙⑦⑧⑨⒄⒃⒚⒛⒒⒕②⒖⒘⒁⒓⑿⒗⑾na⒅na⒆⒇nanananana 数学符号 0 1 2 3 4 5 6 7 8 9 a b c d e f g h i j k
5、 l m n o p q r s t u v w x y z ; = , - . / ` [ \ ] ' na≡≠=≤≥<>≮≯∧⊙∠∑-∏∪∩∫∈na∵∽≌∮∝±×∨÷na⌒+∥/⊥∴nana∷√na≈∞nanana nanananananananananananananananananananananananananananananananananananananananananananananana 单位符号 0 1 2 3 4 5 6 7 8 9 a b c d e f g h i j k l m n o p q r s t u v w x y z ; = , - .
6、 / ` [ \ ] ' ¤°′″$£¥‰%℃百na毫万二亿兆吉七太拍艾nana八九○三千四六微一厘五分nanana¢nanana十nanana nananananananananana佰nanana贰nanana柒nanananana捌玖零叁仟肆陆na壹na伍nananananananana拾nanana 拼音符号 0 1 2 3 4 5 6 7 8 9 a b c d e f g h i j k l m n o p q r s t u v w x y z ; = , - . / ` [ \ ] ' nanananananananananaē naǔ ě ǎ è
7、 naī ǒ í ǐ ì ǘ ǖ ò naā à é naó ù á ú ō ū nanaǚ naǜ ü naê nanana nanananananananananananananananananananananananananananananananananananananananananananananana 注音符号 0 1 2 3 4 5 6 7 8 9 a b c d e f g h i j k l m n o p q r s t u v w x y z ; = , - . / ` [ \ ] ' ㄦㄉnanaㄓnanaㄚㄞㄢㄇㄖㄏㄎㄍㄑㄕㄘㄛㄨㄜㄠㄩㄙㄟㄣㄆㄐㄋ
8、ㄔㄧㄒㄊnaㄗㄈㄤnaㄝnaㄡㄥnanananana nanananananananananananananananananananananananananananananananananananananananananananananana 日文平假名 0 1 2 3 4 5 6 7 8 9 a b c d e f g h i j k l m n o p q r s t u v w x y z ; = , - . / ` [ \ ] ' naぃぅぇぉかきくけこなもむぬすねのはつひふへゅゃってさせにそちめしみたまほnaょんゎをぁとnaゐゑ naいうえおがぎぐげごぱろるぷずぺぽば
9、づびぶべゆやnaでざぜぴぞぢれじりだらぼnaよnaわnaあどnanana 日文片假名 0 1 2 3 4 5 6 7 8 9 a b c d e f g h i j k l m n o p q r s t u v w x y z ; = , - . / ` [ \ ] ' ケィゥヴェォカヵキクナモムヌスネノハツヒフヘュャッテサセニソチメシミタマホコョヶヮヲァトンヰヱ ゲイウnaエオガnaギグパロルプズペポバヅビブベユヤnaデザゼピゾヂレジリダラボゴヨnaワnaアドnanana 希腊字母 0 1 2 3 4 5 6 7 8 9 a b c d e f g h i j k l
10、 m n o p q r s t u v w x y z ; = , - . / ` [ \ ] ' nanananananananananaκχυμγνξοθπρnaωψιnaαδλεηφβτζσnanananananananananana nanananananananananaΚΧΥΜΓΝΞΟΘΠΡnaΩΨΙnaΑΔΛΕΗΦΒΤΖΣnanananananananananana 俄文字母 0 1 2 3 4 5 6 7 8 9 a b c d e f g h i j k l m n o p q r s t u v w x y z ; = , - . / ` [ \ ] '
11、 nanananananananananaлъшнвопржстуьызиагмдёщбчецфnaэnaюяnaйnaкх nanananananananananaЛЪШНВОПРЖСТУЬЫЗИАГМДЁЩБЧЕЦФnaЭnaЮЯnaЙnaКХ 小键盘的程序代码 //软键盘布局数据结构 typedef struct tagSOFTKBDDATA { UINT uCount; //@@ WORD wCode[1][256]; WORD wCode[2][256]; } SOFTKBDDATA, *PSOFTKBDDATA,
12、NEAR *NPSOFTKBDDATA, FAR * LPSOFTKBDDATA; //改变键盘布局 sbd.uCount = 2; SOFTKBDDATA sbd; for (i = 0; i<256; i++) { sbd.wCode[0][i] = '@'; } SendMessage(hWndSoftKBD, WM_IME_CONTROL, IMC_SETSOFTKBDDATA, (LPARAM)&sbd); //显示和隐藏软键盘的代码 //加载DLL hLibrary=LoadLibrary("imm32.DLL"); if(hLibrary>3
13、1) //加载成功 { if( SoftKBStatus == SOFTKBCLOSE) { //显示软键盘 SoftKBStatus = SOFTKBOPEN; lpCreateSoftKeyboard = GetProcAddress(hLibrary,"ImmCreateSoftKeyboard"); lpShowSoftKeyboard = GetProcAddress(hLibrary,"ImmShowSoftKeyboard"); if(lpCreateSoftKeyboard != (FARPROC)NULL && lpShowSof
14、tKeyboard != (FARPROC)NULL) hWndSoftKBD = (*lpCreateSoftKeyboard)(SOFTKEYBOARD_TYPE_C1, hWnd, 0, 0); (*lpShowSoftKeyboard)(hWndSoftKBD, SW_SHOWNOACTIVATE); GetWindowRect(hWndSoftKBD, &rc); w = rc.right - rc.left; h = rc.bottom - rc.top; MoveWindow(hWndSoftKBD, cx / 2, cy - 2*h, w, h, TRUE); }else { //隐藏软键盘 if(hWndSoftKBD) { lpDestroySoftKeyboard = GetProcAddress(hLibrary, "ImmDestroySoftKeyboard"); (*lpDestroySoftKeyboard)(hWndSoftKBD); } SoftKBStatus = SOFTKBCLOSE; } }






