タイトル : Re^3: メモ帳のカーソル位置 投稿日 : 2012/07/05(Thu) 15:26 投稿者 : 魔界の仮面弁士
> > > 環境:VB6.08 > > Office VBA をお使いですか? > 僕のバージョンの書き方がおかしかったでしょうか? 「VB6」や「VB6.0」という表現ならばよく目にしますが、 VB6.08 というバージョンは聞いたことが無かったので、 VBA 系かと勘繰ってしまいました。 # Major=6、Minor=0 系統(6.0.9782 や 6.0.98.15 など)なら、 # たまに見かけるのですけれどね。 > 魔界の仮面弁士さんのSendMessageの書き込みを発見しました。 何度か書いているかも知れませんが、本人も覚えていません。 どれのことだろう…。(^^; > メモ帳の先頭行に挿入ということで 手抜き実装としては、AppActivate ステートメントでメモ帳をアクティブにした上で、 先頭なら Ctrl + Home、末尾なら Ctrl + End を送るという方法があります。 SendKeys "^{END}", True これならば API 無しで実現できます。確実性はありませんが。 > 移動だけだと EM_SETSEL を使用すると理解しています。 EM_SETSEL メッセージの場合、wParam が開始位置、lParam が選択文字列の長さです。 VB6 の TextBox で言えば、wParam が SelStart プロパティ、 lParam が SelLength プロパティに相当すると考えれば良いかと。 今回は lParam は 0 固定で構いません。 wParam は、SendMessageA ではバイト数、SendMessageW では文字数を 渡すことになりますが、末尾にしたい場合には手を抜いて、固定で Long 型の 最大値(&H7FFFFFFF)を指定するという手法も使われます。 > SendMessage(hwndTextBox, EM_SETSEL, 末尾, Nothing) 参考にしたものは、VB6 のものではなく、VB.NET 向けのコードのようですね。 |