C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[5]: 16進数について


(過去ログ 73 を表示中)

[トピック内 6 記事 (1 - 6 表示)]  << 0 >>

■42687 / inTopicNo.1)  16進数について
  
□投稿者/ たぬき (33回)-(2009/10/20(Tue) 11:16:40)

分類:[.NET 全般] 

いつもお世話になっています。

今回は、このページでどうしても分からない事があり質問させていただきます。
http://mt-soft.sakura.ne.jp/web_dl/vb-parts/mouse_scan/
EventsAnlyzイベント内の
If (Rc And &H8001) <> 0 Then '下位2バイトの最上位ビット
ここの一文の意味が分かりません。下位2バイトの最上位とは書いてありますが、そもそも16進数を使う意味もよく分かりません。。。
どなたか説明お願いします。

引用返信 編集キー/
■42689 / inTopicNo.2)  Re[1]: 16進数について
□投稿者/ 囚人 (422回)-(2009/10/20(Tue) 11:30:30)
GetAsyncKeyState
http://msdn.microsoft.com/ja-jp/library/cc364583.aspx
最上位ビットがセットされたときは現在そのキーが押されていることを示し、最下位ビットがセットされたときは前回の GetAsyncKeyState 関数呼び出し以降にそのキーが押されたことを示します。


「下位2バイトの最上位ビット」のコメントの意味が分かりませんが、上記の通りです。
16進数を使うのは、どこにビットが立っているか直感的にわかるため。10進数だとどこにビットがたってるのかわかりにくいから、かな。
引用返信 編集キー/
■42690 / inTopicNo.3)  Re[2]: 16進数について
□投稿者/ GOD (10回)-(2009/10/20(Tue) 11:43:26)
No42689 (囚人 さん) に返信
> 「下位2バイトの最上位ビット」のコメントの意味が分かりませんが、上記の通りです。
>
「本来、GetAsyncKeyStateは2バイトで戻り値を返すが、受け取り側(Rc)がLong(4バイト)の変数で受け取っている為、下位2バイトに戻り値が入っている。」ということですね。

※APIの定義はMSDNで確認した方が良いですよ。
http://msdn.microsoft.com/ja-jp/library/cc364583.aspx
引用返信 編集キー/
■42691 / inTopicNo.4)  Re[3]: 16進数について
□投稿者/ 囚人 (423回)-(2009/10/20(Tue) 11:52:15)
No42690 (GOD さん) に返信
> ■No42689 (囚人 さん) に返信
>>「下位2バイトの最上位ビット」のコメントの意味が分かりませんが、上記の通りです。
> >
> 「本来、GetAsyncKeyStateは2バイトで戻り値を返すが、受け取り側(Rc)がLong(4バイト)の変数で受け取っている為、下位2バイトに戻り値が入っている。」ということですね。


あぁ、そっちの意味が分からないじゃなくて(Longで受けてる意味も分かりませんが)、「最上位ビット」と書いてるのに、最下位ビットもチェックしてるてことね。

引用返信 編集キー/
■42692 / inTopicNo.5)  Re[4]: 16進数について
□投稿者/ GOD (11回)-(2009/10/20(Tue) 12:15:56)
No42691 (囚人 さん) に返信
> ■No42690 (GOD さん) に返信
>>■No42689 (囚人 さん) に返信
> >>「下位2バイトの最上位ビット」のコメントの意味が分かりませんが、上記の通りです。
>>>
>>「本来、GetAsyncKeyStateは2バイトで戻り値を返すが、受け取り側(Rc)がLong(4バイト)の変数で受け取っている為、下位2バイトに戻り値が入っている。」ということですね。
>
>
> あぁ、そっちの意味が分からないじゃなくて(Longで受けてる意味も分かりませんが)、「最上位ビット」と書いてるのに、最下位ビットもチェックしてるてことね。
>
推測ですが、ずっと押しっぱなしの場合に処理をしたくないのかな。

'ここで対象キーを押す。
GetAsyncKeyState(...) '戻り値=&H8001
GetAsyncKeyState(...) '戻り値=&H8000
'ここで対象キーを離す。

となりますから。


ちなみに↓の場合は、
'ここで対象キーを押す。
'ここで対象キーを離す。
GetAsyncKeyState(...) '戻り値=&H0001
GetAsyncKeyState(...) '戻り値=&H0000
ですね。
引用返信 編集キー/
■42723 / inTopicNo.6)  Re[5]: 16進数について
□投稿者/ たぬき (34回)-(2009/10/20(Tue) 17:03:52)
GOD さん、囚人 さん丁寧な回答ありがとうございます。
意味が分かりました!!
マウスボタンの押し、離し、変化なしを判断しているのですね。
16進数の意味も分かりました!

本当にありがとうございました!!
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -