雙通輸入法的使用者介面

2021-04-01 08:15:40 字數 4743 閱讀 2029

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

//啟動並初始化當前

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 :

如果成功

,返回轉換後的字串長度

//退出當前使用的

imebool 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_set***positionfont

imc_set***positionwindow

imc_setconversionmode

imc_setsentencemode

imc_setopenstatus

=ni_***positionstr

改變編碼視窗中的編碼

此時:dwindex

取下列值:

cps_***plete

完成編碼轉換

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)

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

imeset***positionstring(himc himc, dword dwindex, lpcvoid lp***p, dword dw***p, lpcvoid lpread, dword dwread)

還有些不是太明白

慢慢研究了吧

雙通輸入法的使用者介面

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

雙通輸入法發布

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

輸入法的使用者介面

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