前のページを理解していれば簡単だよ。
今回は、前回の応用です。前回は SendMessage で返される戻り値を下位ワード・上位ワードに分けることで選択開始位置、選択終了位置を取得する、ということをやりました。もし、これらの値が等しい、即ち、選択開始位置 = 選択終了位置であればどうでしょう。もう、お分かりですね。これ以上は言及する必要はないでしょう。それでは関数を書いてみます。
'----------------------------------------------------------------
Dim ret As Long ret = SendMessage(hEditbox, EM_GETSEL, 0&, ByVal 0&)
PrmLoWord = GetLoWord(ret) IsSelText = Not CBool(PrmLoWord = PrmHiWord) End Function ちなみに、IsSelText = Not CBool(PrmLoWord = PrmHiWord) は、
If PrmLoWord = PrmHiWord Then を1行でまとめたものです。「こんなもの誰でも知ってるぞ、馬鹿にするな」と思われる方もいると思いますが、念のために確認させていただきました。 |