雙通輸入法的使用者介面

2021-04-19 00:26:13 字數 4143 閱讀 7837

雙通輸入法的使用者介面    

結合我看得那個雙通輸入法程式來總結一下該輸入法的所有使用者介面

//啟動並初始化當前ime輸入法

bool imeinquire(

lpimeinfo lpimeinfo, //用於初始化該輸入法的結構位址

lptstr lpszwndclass, //當前輸入法的名稱

lpctstr或者dword lpszdata //系統資訊,9x系列值為0,nt/2000下有實際值)

//配置當前ime引數函式

//該函式的功能是提供給輸入法使用者乙個可以更改某些隱含設定的能力.如果你用過別人

//的輸入法,其中的"配置輸入法..."功能既是也!對於乙個初寫輸入法的人,可以不予理它.

bool imeconfigure(hkl ,    //當前輸入法控制代碼

hwnd ,   //配置視窗的父視窗

dword ,  //配置什麼

lpvoid   //使用者設定的資料)

//將字元或字串轉換成目標字元

dword imeconversionlist(

himc ,  // 與當前輸入法相關的應用程式控制代碼

lpctstr, // 要轉換的字串 (也可能是結果串,可由uflag指定)

lpcandidatelist,  // 轉換後的字串(也可能是源串,可由uflag指定)

dword,                          //轉換後有幾個字元

uint                         //指定結果的存放位置)

return : 如果成功,返回轉換後的字串長度

//退出當前使用的ime

bool winapi imedestroy(uint uforce)

//應用軟體訪問輸入法的介面.

lresult imeescape( //使用者軟體訪問輸入法內部資訊的介面

himc himc, //當前的應用程式控制代碼

uint uescape, //設定函式功能

//=ime_esc_query _support

//=ime_esc_reserved_last ime_esc_reserved_first

//=ime_esc_private_first ime_esc_private_last

//=ime_esc_sequence_to_ internal

//=ime_esc_get_eudc_ dictionary

//=ime_esc_set_eudc_ dictionary

//=ime_esc_max_key

//=ime_esc_ime_name

//=ime_esc_sync_hotkey

//=ime_esc_hanja_mode

//=ime_esc_gethelpfilename(只適應 windows 98和windows 2000)

//=ime_esc_private_hotkey(w95下不可用)

lpvoid lpdata //當前功能所需的資料)

如果失敗,返回0,否則有個功能決定有時,人們可以用此函式懷區輸入法的名稱、幫助檔名稱等。當然,我們可以不提供這些功能。

//ime輸入鍵盤事件管理函式,處理應用程式傳入的所有擊鍵事件,監測是否是當前輸入法所需的

bool imeprocesskey( himc ,                  //應用程式控制代碼

uint ,                  //需處理的虛鍵

dword,                     //擊鍵訊息引數

const lpbyte   //當前鍵盤狀態(256位元組))

return : 如果此鍵是該輸入法需要的,則返回true,否則為false.只有返回true的擊鍵,ime才去處理

//啟動當前ime輸入法

bool imeselect( himc , //當前應用程式控制代碼

bool   //是否初始化當前輸入法,true表示初始化)

return : 成功返回true,否則為false

//設定當前的輸入處於活動狀態

bool imesetactivecontext( himc , //當前使用者程式控制程式碼

bool   //啟用或擱置:=true 啟用 =false 擱置)

return : 成功返回true,否則為false

//將輸入的鍵盤事件轉換為漢字編碼事件

uint imetoasciiex( uint ,                     //虛鍵

uint ,                    //掃瞄碼

const lpbyte ,   //使用者定義的鍵盤狀態

lpdword ,        //轉換後的資料存放區

uint ,           //活動選單標誌

himc             //當前的應用程式控制代碼)

bool notifyime( //輸入法選擇視窗狀態管理函式:

himc himc, //當前的應用程式控制代碼

dword dwaction, //狀態值

dword dwindex, //與狀態值有關的序號

dword dwvalue //與狀態值有關的值)

狀態值說明:

=ni_opencandidate 開啟編碼選擇視窗

=ni_closecandidate 關閉當前的編碼選擇窗

=ni_selectcandidatestr 選摘編碼

此時:dwindex 被選擇的編碼列表序號.

dwvalue 被選中的編碼在當前的編碼列表中的序號

=ni_changecandidatelist 改變當前的編碼列表(按pageup等鍵操作)

此時:dwindex 被選擇的編碼列表序號.

dwvalue 不用

=ni_setcandidate_pagestart 設定編碼開始頁號

此時: dwindex 被改變的編碼列表序號

dwvalue 新頁的開始序號.

=ni_setcandidate_pagesize 改變編碼列表頁的大小

此時:dwindex 當前編碼頁序號

dwvalue 新的頁大小

=ni_contextupdated 更新應用程式的資訊的輸入法的資訊:移動位置,設定模式,設定編碼視窗,字型。此時:dwindex 只用於 dwvalue=imc_setconversionmode, imc_setsentencemode

dwvalue 可取由 wm_ime_control 傳送的下列值:

imc_setcandidatepos

imc_setcompositionfont

imc_setcompositionwindow

imc_setconversionmode

imc_setsentencemode

imc_setopenstatus

=ni_compositionstr 改變編碼視窗中的編碼

此時:dwindex 取下列值:cps_complete 完成編碼轉換

cps_convert 轉換編碼

cps_revert 取消當前的編碼

cps_cancel 清除編碼,並關閉編碼窗

dwvalue 不用

此函式成功,返回true,否則為false

//向輸入法字典註冊字串

imeregisterword(lpctstr lpread, dword dw, lpctstr lpstr)

//和上面的操作相反

imeunregisterword(lpctstr lpread, dword dw, lpctstr lpstr)

//這個函式的功能還有待考證

imeenumregisterword(registerwordenumproc lpfn, lpctstr lpread, dword dw, lpctstr lpstr, lpvoid lpdata)

//由應用程式設定輸入法編碼

imesetcompositionstring(himc himc, dword dwindex, lpcvoid lpcomp, dword dwcomp, lpcvoid lpread, dword dwread)

還有些不是太明白  慢慢研究了吧

雙通輸入法的使用者介面

結合我看得那個雙通輸入法程式來總結一下該輸入法的所有使用者介面 啟動並初始化當前 ime輸入法 bool imeinquire lpimeinfo lpimeinfo,用於初始化該輸入法的結構位址 lptstr lpszwndclass,當前輸入法的名稱 lpctstr 或者dword lpszda...

雙通輸入法發布

雙通輸入法介紹 輸入法的旗艦 雙通 拼音與筆畫 鍵盤與滑鼠 簡體與繁體 手機與電腦 字母鍵與數字鍵 無不雙雙通用!簡體版功能更加完善 繁體版首次公開發表 輸入法 關鍵是方法!雙通特色與創新點 1 數字小鍵盤的直角座標上,縱橫對應音節鍵位,首創 數字鍵雙拼!雙通a 2 韻母按區分布,軟鍵盤跟蹤提示,無...

輸入法的使用者介面

我現在使用的是微軟輸入法,以前使用過搜狗輸入法,但是搜狗輸入法顏色雜亂,佔空間大,顯得桌面雜亂,不符合我的個人使用習慣。1 使用者介面 整體上 只在工作列顯示中或者英,簡潔大方,色調商務正式,佔空間小,並且操作簡單實用,經常彈出使用者體驗以及糾錯功能資訊。系統介面 簡潔大方,色調商務正式,佔空間小,...