📄 jyinput.cpp
字号:
piinfo->hz_outcode[piinfo->outcode_cur++] = (char)key; piinfo->hz_outcode[piinfo->outcode_cur] ='\0'; nCount = _proc_py_index(); if (nCount == 0) { if (m_nPyCount != 0) { piinfo->hz_outcode[piinfo->outcode_cur-1] ='\0'; piinfo->outcode_cur --; nCount = _proc_py_index(); } } m_nPyCount = nCount; m_nPySelect = 0; m_nFirst = 0; memcpy(piinfo->py_code , m_szPylist + (piinfo->outcode_cur + 1) * m_nPySelect, piinfo->outcode_cur) ; piinfo->py_code[piinfo->outcode_cur] = 0; _Py_Select_Change(); m_nSelectPos = 0; return TRUE; } else if (key == KEY_XING) { if (piinfo->outcode_cur != 0) { m_nPySelect ++; if (m_nPySelect >m_nPyCount - 1) m_nPySelect = 0; memcpy(piinfo->py_code , m_szPylist + (piinfo->outcode_cur + 1) * m_nPySelect, piinfo->outcode_cur) ; piinfo->py_code[piinfo->outcode_cur] = 0; _Py_Select_Change(); m_nSelectPos = 0; return TRUE; } } else if (key == KEY_RFUNC) { if(piinfo->outcode_cur > 0){ piinfo->outcode_cur--; piinfo->hz_outcode[piinfo->outcode_cur] = 0; m_nPySelect = 0; if (piinfo->outcode_cur !=0) { m_nPyCount = _proc_py_index(); }else{ m_nPyCount = 0; } memcpy(piinfo->py_code , m_szPylist + (piinfo->outcode_cur + 1) * m_nPySelect, piinfo->outcode_cur) ; piinfo->py_code[piinfo->outcode_cur] = 0; _Py_Select_Change(); return TRUE; } else { _Quit_JYInput_Wnd(); } } return FALSE;}static BOOL _proc_bh_key_press(unsigned short key){ ST_INPUT_INFO *piinfo = &m_piinfo; if(key >= KEY_1 && key <= KEY_5) { if (g_pstBhTable != NULL) { if (piinfo->outcode_cur >= 10) return TRUE; piinfo->hz_outcode[piinfo->outcode_cur++] = key - 48; piinfo->hz_outcode[piinfo->outcode_cur] = '\0'; m_nSelectPos = 0; piinfo->hz_found_cur = 0; _find_bh_hzcode(); _put_bh_to_array(); } return TRUE; } else if (key == KEY_RFUNC) { if (piinfo->outcode_cur > 0) { piinfo->outcode_cur--; piinfo->hz_outcode[piinfo->outcode_cur] = 0; m_nSelectPos = 0; _find_bh_hzcode(); _put_bh_to_array(); } else { _Quit_JYInput_Wnd(); } return TRUE; } return FALSE;}static BOOL _proc_hw_key_press(unsigned short key){ ST_INPUT_INFO *piinfo = &m_piinfo; if(key >= KEY_1 && key <= KEY_9) { //m_nSelectPos } else if (key == KEY_RFUNC) { _Quit_JYInput_Wnd(); } return FALSE;}static void _proc_hz_keyup(){ ST_INPUT_INFO *piinfo = &m_piinfo; if (piinfo->outcode_cur == 0) { if (m_bHZAssn) { if (m_nSelectPos >= LINE_DISPLAY_MAXCOUNT) { m_assn_Hz_Pos -= LINE_DISPLAY_MAXCOUNT; m_nSelectPos = m_assn_Hz_Pos; } ////_put_assn_to_array(); } else { if (m_often_Hz_Pos >= LINE_DISPLAY_MAXCOUNT) { m_often_Hz_Pos -= LINE_DISPLAY_MAXCOUNT; m_nSelectPos = m_often_Hz_Pos; } _put_often_to_array(); } } else { if(piinfo->hz_found_begin == piinfo->hz_found_end) return; if((piinfo->hz_found_cur - piinfo->hz_found_begin) > LINE_DISPLAY_MAXCOUNT * 2) piinfo->hz_found_cur -= LINE_DISPLAY_MAXCOUNT * 2; else piinfo->hz_found_cur = piinfo->hz_found_begin; m_nSelectPos = (piinfo->hz_found_cur - piinfo->hz_found_begin) / 2; if (piinfo->keymode & IME_MODE_T9PY) _put_py_to_array(); else if (piinfo->keymode & IME_MODE_T9BH) _put_bh_to_array(); ////else if (piinfo->keymode & IME_MODE_HANDWRITE) //// _put_bh_to_array(); }}static void _proc_hz_keydown(){ ST_INPUT_INFO *piinfo = &m_piinfo; if (piinfo->outcode_cur == 0) { if (m_bHZAssn) { if (m_assn_Hz_Pos + LINE_DISPLAY_MAXCOUNT < g_pstAssnArray[m_nAssnSelectIndex].nCounts) { m_assn_Hz_Pos += LINE_DISPLAY_MAXCOUNT; m_nSelectPos = m_assn_Hz_Pos; } ////_put_assn_to_array(); } else { if (m_often_Hz_Pos + LINE_DISPLAY_MAXCOUNT < OFTEN_COUNT) { m_often_Hz_Pos += LINE_DISPLAY_MAXCOUNT; m_nSelectPos = m_often_Hz_Pos; } _put_often_to_array(); } } else { if(piinfo->hz_found_begin == piinfo->hz_found_end) return; if((piinfo->hz_found_end - piinfo->hz_found_cur) > LINE_DISPLAY_MAXCOUNT * 2) { piinfo->hz_found_cur += LINE_DISPLAY_MAXCOUNT * 2; m_nSelectPos = (piinfo->hz_found_cur - piinfo->hz_found_begin) / 2; } if (piinfo->keymode & IME_MODE_T9PY) _put_py_to_array(); else if (piinfo->keymode & IME_MODE_T9BH) _put_bh_to_array(); ////else if (piinfo->keymode & IME_MODE_HANDWRITE) //// _put_bh_to_array(); }}static void _proc_hz_keyleft(){ ST_INPUT_INFO *piinfo = &m_piinfo; m_nSelectPos = (m_nSelectPos == 0) ? 0 : m_nSelectPos - 1; if (piinfo->outcode_cur == 0) { if (m_bHZAssn) { if (m_nSelectPos < m_assn_Hz_Pos) m_assn_Hz_Pos -= LINE_DISPLAY_MAXCOUNT; //// _put_assn_to_array(); } else { if (m_nSelectPos < m_often_Hz_Pos) m_often_Hz_Pos -= LINE_DISPLAY_MAXCOUNT; _put_often_to_array(); } } else { if(piinfo->hz_found_begin == piinfo->hz_found_end) return; if(m_nSelectPos < (piinfo->hz_found_cur - piinfo->hz_found_begin) / 2) piinfo->hz_found_cur -= LINE_DISPLAY_MAXCOUNT * 2; if (piinfo->keymode & IME_MODE_T9PY) _put_py_to_array(); else if (piinfo->keymode & IME_MODE_T9BH) _put_bh_to_array(); ////else if (piinfo->keymode & IME_MODE_HANDWRITE) //// _put_bh_to_array(); }}static BOOL _proc_hz_keyright(){ ST_INPUT_INFO *piinfo = &m_piinfo; m_nSelectPos++; if (piinfo->outcode_cur == 0) { if (m_bHZAssn) { if (m_nSelectPos > g_pstAssnArray[m_nAssnSelectIndex].nCounts - 1) m_nSelectPos = g_pstAssnArray[m_nAssnSelectIndex].nCounts - 1; if (m_nSelectPos >= m_assn_Hz_Pos + LINE_DISPLAY_MAXCOUNT) m_assn_Hz_Pos += LINE_DISPLAY_MAXCOUNT; //_put_assn_to_array(); } else { if (m_nSelectPos > OFTEN_COUNT - 1) m_nSelectPos = OFTEN_COUNT - 1; if (m_nSelectPos >= m_often_Hz_Pos + LINE_DISPLAY_MAXCOUNT) m_often_Hz_Pos += LINE_DISPLAY_MAXCOUNT; _put_often_to_array(); } } else { if(piinfo->hz_found_begin == piinfo->hz_found_end) return FALSE; if (m_nSelectPos >=(piinfo->hz_found_end - piinfo->hz_found_begin) / 2) m_nSelectPos = (piinfo->hz_found_end - piinfo->hz_found_begin) / 2 - 1; if(m_nSelectPos >= ((piinfo->hz_found_cur - piinfo->hz_found_begin) / 2) + 10) piinfo->hz_found_cur += LINE_DISPLAY_MAXCOUNT * 2; if (piinfo->keymode & IME_MODE_T9PY) _put_py_to_array(); else if (piinfo->keymode & IME_MODE_T9BH) _put_bh_to_array(); ////else if (piinfo->keymode & IME_MODE_HANDWRITE) //// _put_bh_to_array(); }}static BOOL _proc_hz_key_press(unsigned short key){ ST_INPUT_INFO *piinfo = &m_piinfo; if (piinfo->keymode & IME_MODE_T9PY) { if (_proc_py_key_press(key) == TRUE) return 1; } else if (piinfo->keymode & IME_MODE_T9BH) { if (_proc_bh_key_press(key) == TRUE) return 1; } else if (piinfo->keymode & IME_MODE_HANDWRITE) { if (_proc_hw_key_press(key) == TRUE) return 1; } switch(key) { //case KEY_XING: // { // _Backspace(); // return 1; // } // break; case KEY_UP: _proc_hz_keyup(); break; case KEY_DOWN: _proc_hz_keydown(); break; case KEY_LEFT: _proc_hz_keyleft(); break; case KEY_RIGHT: _proc_hz_keyright(); break; case KEY_RFUNC: if (piinfo->outcode_cur == 0) // || piinfo->outcode_cur == 100 /* =100 为手写输入 */) _Quit_JYInput_Wnd(); break; default: return FALSE; } return TRUE;}//////////////////////////////////////////////////////////////////////////static BOOL _proc_keydown(int nCharKey){ if ( m_piinfo.keymode & IME_MODE_T9PY || m_piinfo.keymode & IME_MODE_T9BH || m_piinfo.keymode & IME_MODE_HANDWRITE ) { if (_proc_hz_key_press(nCharKey) == TRUE) { InvalidateRect (g_hImeWnd, NULL, TRUE); return 1; } else { if (nCharKey == KEY_0) { nCharKey = ' '; _PostChar2Edit((char*)&nCharKey, 1); return 1; } } } else if ( (m_piinfo.keymode & IME_MODE_ALPHABET_LOW) || (m_piinfo.keymode & IME_MODE_ALPHABET_UP) ) { unsigned char sChars = _proc_en_key_press(nCharKey); if (sChars > 0) _PostChar2Edit((char *)&sChars, 1); else { if (nCharKey == KEY_0) { nCharKey = ' '; _PostChar2Edit((char*)&nCharKey, 1); return 1; } else if (nCharKey == KEY_RFUNC) { _Quit_JYInput_Wnd(); return 1; } } } else if (m_piinfo.keymode & IME_MODE_NUMBER) { if (nCharKey >= KEY_0 && nCharKey <= KEY_9) { _PostChar2Edit((char*)&nCharKey, 1); return 1; } //else if (nCharKey == KEY_XING) //{ // _Backspace(); // return 1; //} else if (nCharKey == KEY_RFUNC) { _Quit_JYInput_Wnd(); return 1; } } else if (m_piinfo.keymode & IME_MODE_SYMBOL) { switch(nCharKey) { //case KEY_XING: // _Backspace(); // return 1; // break; case KEY_RFUNC: _Quit_JYInput_Wnd(); return 1; break; case KEY_0: nCharKey = ' '; _PostChar2Edit((char*)&nCharKey, 1); return 1; break;/*
case KEY_1:
case KEY_2:
case KEY_3:
case KEY_4:
case KEY_5:
case KEY_6:
case KEY_7:
case KEY_8:
case KEY_9:
m_nSelectPos = (m_nSymbolPage * LINE_DISPLAY_MAXCOUNT) + nCharKey - KEY_1;
nCharKey = KEY_LFUNC;
//_PostChar2Edit((char*)&nCharKey, 1);
//return 1;
break;
*/
default: break; } } InvalidateRect (g_hImeWnd, NULL, TRUE); switch(nCharKey) { case KEY_1: if (!(m_piinfo.keymode & IME_MODE_NUMBER)) { _SwitchVariable(); m_bHZAssn = FALSE; m_piinfo.keymode = IME_MODE_SYMBOL; } break; case KEY_LFUNC: if (m_piinfo.keymode & IME_MODE_ALPHABET_UP || m_piinfo.keymode & IME_MODE_ALPHABET_LOW) { char cAlphabet = _proc_en_key_press(0); _PostChar2Edit((char*)&(cAlphabet), 1); } else if (m_piinfo.keymode & IME_MODE_SYMBOL) { _PostChar2Edit((char*)&(array_symbol [m_nSelectPos]), 1); m_nSymbolPage = 0; m_nSelectPos = 0; } else if ( (m_piinfo.keymode & IME_MODE_T9PY) || (m_piinfo.keymode & IME_MODE_T9BH) || (m_piinfo.keymode & IME_MODE_HANDWRITE) ) { _PostChar2Edit((char*)&(key_arrary_hz_select[m_nSelectPos % LINE_DISPLAY_MAXCOUNT]), 2); _SwitchVariable(); } break; case KEY_UP: if (m_piinfo.keymode & IME_MODE_SYMBOL) { m_nSymbolPage--; if (m_nSymbolPage < 0) m_nSymbolPage = 0; else m_nSelectPos -= LINE_DISPLAY_MAXCOUNT; } break; case KEY_DOWN: if (m_piinfo.keymode & IME_MODE_SYMBOL) { int k = sizeof(array_symbol) / LINE_DISPLAY_MAXCOUNT; m_nSymbolPage++; if (m_nSymbolPage > k) m_nSymbolPage = k; else m_nSelectPos += LINE_DISPLAY_MAXCOUNT; } break; case KEY_LEFT: if (m_piinfo.keymode & IME_MODE_SYMBOL) { m_nSelectPos = (m_nSelectPos == 0) ? 0 : m_nSelectPos - 1; if (m_nSelectPos < m_nSymbolPage * LINE_DISPLAY_MAXCOUNT) { m_nSymbolPage --; } } break; case KEY_RIGHT: if (m_piinfo.keymode & IME_MODE_SYMBOL) { m_nSelectPos ++; if (m_nSelectPos > sizeof(array_symbol) - 1) { m_nSelectPos = sizeof(array_symbol) - 1; } if (m_nSelectPos > (m_nSymbolPage + 1) * LINE_DISPLAY_MAXCOUNT -1) { m_nSymbolPage ++; } } break; ////#ifdef IME_HANDWRITE_ENABLE //// case XM_POINTERDOWN: //// if (m_piinfo.keymode & IME_MODE_HANDWRITE) //// { //// m_bHWSelect = FALSE; //// return 1; //// } //// break; //// case KEY_XING: //// if (m_piinfo.keymode & IME_MODE_HANDWRITE) //// { //// g_nHWHZCount = 0; //// } //// break; ////#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -