こんばんは、大石です。
On Thu, 31 Jul 2003 10:28:18 +0900
YOSHIMOTO Hideyuki <y...@yts.yamatake.co.jp> wrote:
> > ただし、GetKeyboardState() や GetAsyncKeyState() を用いずに
> > KeyboardProc() を用いてキーを監視するようにすれば
> > 拡張キーのフラグを参照することで、
> > End キーが押されたのか、Shift + テンキーの 1 が押されたのかを区別できますね。
>
> このテクニックで何とかなりそうな気もしますが、結局
>
> (c) テンキーを押しながらSHIFTキーを押し、テンキーを離したあとにSHIFTキーを
> 離した場合、テンキーが押しっぱなし状態になることがある。
> こうなった場合、テンキーの同じキーをもう一度押すと元に戻る。
> (トグルされる?)
>
> の余計な仕様を防止できない限り、無理そうです。
防止できます。
まず、このような状態を検知できることは自明であると思います。
で、検知したときに、keybd_event で押されっぱなしのキーを
自分で明示的に上げてやれば良いのです。
- ---
o...@cam.hi-ho.ne.jp
http://www.cam.hi-ho.ne.jp/oishi/
On Thu, 31 Jul 2003 10:28:18 +0900
YOSHIMOTO Hideyuki <y...@yts.yamatake.co.jp> wrote:
> > ただし、GetKeyboardState() や GetAsyncKeyState() を用いずに
> > KeyboardProc() を用いてキーを監視するようにすれば
> > 拡張キーのフラグを参照することで、
> > End キーが押されたのか、Shift + テンキーの 1 が押されたのかを区別できますね。
>
> このテクニックで何とかなりそうな気もしますが、結局
>
> (c) テンキーを押しながらSHIFTキーを押し、テンキーを離したあとにSHIFTキーを
> 離した場合、テンキーが押しっぱなし状態になることがある。
> こうなった場合、テンキーの同じキーをもう一度押すと元に戻る。
> (トグルされる?)
>
> の余計な仕様を防止できない限り、無理そうです。
防止できます。
まず、このような状態を検知できることは自明であると思います。
で、検知したときに、keybd_event で押されっぱなしのキーを
自分で明示的に上げてやれば良いのです。
- ---
o...@cam.hi-ho.ne.jp
http://www.cam.hi-ho.ne.jp/oishi/