いっちさんがご紹介されている GetIMEInputData から得られる情報で現状のバージョンでも
「IMEが起動しているか」
「変換候補ウインドウが出ているか」
は判断できますが「変換中かどうか」を判断することはできません
Win32APIのIMEの機能を眺めていたら変換中かどうかを判断できそうでしたので、GetIMEInputData で
取得できる IMEINPUTDATA 構造体に文字変換中かどうかのメンバー変数を追加しました
そのバージョンをこちらにアップしましたので、よろしければダウンロードしてください m(_ _)m
http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe // VisualC++ 用
http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe // BorlandC++ 用
(中身を既存のライブラリのファイルに上書きして、BCCをお使いの
場合は『再構築』、VCをお使いの場合は『リビルド』をして下さい)
追加したメンバー変数はこちらです
// 文字変換中かどうか( TRUE:変換中 FALSE:変換中ではない( 文字単位でカーソルが移動できる状態 ) )
int ConvertFlag ;
変換中かどうかの判断は以下の様に行ってください
IMEINPUTDATA *IMEInputData ;
// IMEINPUTDATA 構造体のポインタを取得
IMEInputData = GetIMEInputData() ;
// GetIMEInputData の戻り値が NULL だった場合は IME による文字入力中ではないので、これをまず判定
// NULL ではなかったら ConvertFlag が TRUE かどうかを調べる
if( IMEInputData != NULL && IMEInputData->ConvertFlag == TRUE )
{
// 文字変換中
}