テキストボックスの現在のカーソル位置の座標を取得することは可能でしょうか。カーソルの横に、ラベルを表示したいのですが分かりません。
知っている方アドバイスお願いします。
GetCaretPos
よく考えたら。LabelはTextの前面に出ないジャン。(^^;
LabelをFrameの上に乗っけて置いて、
Option Explicit
Private Declare Function GetCaretPos Lib "user32" _
(lpPoint As POINTAPI) As Long
Private Type POINTAPI
X As Long
Y As Long
End Type
Private Declare Function SendMessage Lib "user32" _
Alias "SendMessageA" _
(ByVal hWnd As Long, ByVal wMsg As Long, _
ByVal wParam As Long, lParam As Any) As Long
Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
Dim lpPoint As POINTAPI
GetCaretPos lpPoint
Frame1.Top = lpPoint.Y * Screen.TwipsPerPixelY
If Frame1.Top > Text1.Top + Text1.Height Then
Frame1.Top = Text1.Top + Text1.Height - Frame1.Height
End If
Frame1.Left = lpPoint.X * Screen.TwipsPerPixelX + Text1.Left + 150
End Sub
細かい調整など何もしてない概略です。
追伸:
SendMessageの宣言はいりません。
チョンボ多いな。(^^;
我龍院忠太様、返信ありがとうございます。
上記のコードで、うまく出来そうです。ありがとうございました。
| ツイート |
|