∇ 各種テキストエディタ向け処理 ∇
Q&A+Tipsには、UNDOのやり方がありますが、こちらもテキストエデッタには
必須な処理です。(SendKeysでも出来ますが・・・)
コピー、切り取り、貼り付けの方法です。
それぞれ、SendMessage(もしくはPostMessage)で、
Msgに、COPY,CUT,PESTEを指定して、wParam,lParamに0を指定するだけです。
もちろん、API,定数の宣言もしなくてはいけませんが。
サンプルです。
先ず、TextBoxを配置してText1としておいてください。
CommandButtonも3つほど置いてCommand1,Command2,Command3としてください。
宣言をPrivateにしているのでフォームに記述してください。
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 Const WM_CUT = &H300
Private Const WM_COPY = &H301
Private Const WM_PASTE = &H302
Private Sub Command1_Click()
Dim ret as Long
ret = SendMessage(Text1.hwnd, WM_COPY, 0, 0)
End Sub
Private Sub Command2_Click()
Dim ret as Long
ret = SendMessage(Text1.hwnd, WM_PASTE, 0, 0)
End Sub
Private Sub Command3_Click()
Dim ret as Long
ret = SendMessage(Text1.hwnd, WM_CUT, 0, 0)
End Sub
以上です。これで、テキストを(TextBoxの)選択状態にして、
Command3をクリックすると選択部分が切り取られます。
WM_CLEARというものもあります。多分Textがクリアされるのだと思い
ますが、試してません。Text1.Text=""でOKだし。
| Infomation | Title :各種テキストエディタ向け処理 | 2000 4/16 |
| 作成者 : Manabu | ||
| 環境 : VisualBasic 6.0 , InternetExplorer5.0 , Windows98 | ||
1999-2000 Copyright(C) Manabu
1999-00 Manabuの部屋 http://www.manabu.uni.cc/
この文章の無断転際を禁じます