2015-4-20[月] KEYEVENTF_EXTENDEDKEY

win で fltk のサンプルを動かしてるとキー入力全般で、拙作のキーバインディングソフトDiaKbdMouse経由でのカーソル移動がテンキー数字に化けてしまった。調べてみると fl_win32.cxx で WK_KEYUP/DOWN処理でlParamのbit24=拡張キーをみて、拡張キーじゃなかったら まさにそのようなキーが押されたようにする処理になっている。状況的に DiaKbdMouse側で設定足りてないせいだろうで ググれば まさにな頁発見。
みごとに KEYEVENTF_EXTENDEDKEY を設定していなかった。というか、キー種類みてKEYEVENTF_EXTENDEDKEY設定していたのを無くても動くやんで#if 0で省いてた...ダメだ>俺。てことで不精して全部にKEYEVENTF_EXTENDEDKEY付けた状態で対処。

しかし fltk でこんな処理をしてるってことはIBM拡張キーボードとは非互換かつ多少なりとも普及したテンキー付キーボードがあった?…ではなく、拡張キー扱いでない時の fltk でのキーコードは、単に (virtualでない) bios のキーコードと同じようなので、本来はそういう扱いをするものなんですかね。いままで KEYEVENTF_EXTENDEDKEY 付けてなくても困ってなかったから WK_KEYUP/DOWN処理で律儀にlParamのbit24見てるソフトは滅多にないと思うけれど... fltkなソフトを今まで使ってなかったとも言えるか。