ページ 1 / 1
エディットボックスに指定した文字列を挿入する
Posted: 2007年9月16日(日) 20:14
by S/AL
初めまして、S/ALと申します。
とても頭の悪い質問ばかりするかも知れ間せんが、以後よろしくお願いします。
今回はタイトルどおりの質問をさせていただきます。
具体的に言うと、この掲示板のタグ挿入機能的なものです。
ノロケ者な私はRADツールを使用しているんですが、MainWndにボタンを挿入してある状態です。
そのボタンをダブルクリックするとコーディング画面がでてきますよね?
そこのコーディング画面にどのような記述をすればボタンをクリックしたときに指定した文字列をエディットボックスに挿入できるのでしょうか?
一応以下のように自分の出来る範囲でコーディング画面に入力する内容を考えてみました。
コード: 全て選択
Sub MainWnd_CommandButton1_Click()
Dim sample As String
sample = "サンプル"
End Sub
この「サンプル」という文字列をエディットボックス「EditBox1」に挿入させたいのです。
とても分かりづらい説明でしたが、答えていただければ幸いです。
Posted: 2007年9月16日(日) 20:26
by 雷電
SetWindowText関数、もしくは、SetDlgItemText関数で挿入します。
コード: 全て選択
SetWindowText(GetDlgItem(hMainWnd,EditBox1),"文字")
SetDlgItemText(hMainWnd,EditBox1,"文字")
上のものは同じことをします。
自分は、したのを使うことが多いです。
それと、付け加えておきますが、これらで挿入すると、前に書いてあった文字列は消えてしまいます。
Posted: 2007年9月16日(日) 20:32
by S/AL
返信有難うございました。
え、消えちゃうんですか・・・。
ではどうすれば前に書いてある文字列を残したまま、挿入できるのでしょうか?
先ほどのものがダメとなると、根本的に分かりません。。。
どなたか教えていただけないでしょうか?
Posted: 2007年9月16日(日) 20:45
by 雷電
SendMessage関数で、EM_REPLACESELというメッセージを送ります。
関数かすることも可能ですので、そっちを使ってください。
コード: 全て選択
Sub AddStr(ByVal hWnd As Long,ByVal hID As Long,ByVal lpStr As String)
SendMessage(GetDlgItem(hWnd,nID),EM_REPLACESEL,TRUE,lpStr)
End Sub
hWnd...ウィンドウのハンドル
nID.......アイテムのID
lpStr.....文字列
基本的に、アンドゥで戻せるようになっています。
という感じです。
Posted: 2007年9月16日(日) 21:11
by S/AL
返信有難うございました。
まだ十分に理解できたわけではありませんが、コードを参考に頑張ってみます。
Posted: 2007年9月17日(月) 18:59
by S/AL
>雷電様
そのコードを↓内に記述する場合は、どのように記述すればよいのでしょうか?
具体的な使い方が分からず困っています。(自分の読解力が問題なのかもしれませんが)
Sub MainWnd_IDM_strong_MenuClick()
End Sub
Posted: 2007年9月17日(月) 19:46
by 雷電
MainWnd.sbpの上のほうに、
' TODO: この位置にグローバルな変数、構造体、定数、関数を定義します。
このようなものがあると思います。
これの下に、関数の定義をします。(前回投稿したやつです)
で、
Sub MainWnd_IDM_strong_MenuClick()
End Sub
この部分ということですが、書き方を覚えましょう。
書くときは、この中に、
AddStr(hMainWnd,EditBox1,"テスト")
こう書けば、動きます。
試してみてください。
Posted: 2007年9月17日(月) 20:03
by S/AL
返信有難うございました。
物分りが悪くてすみませんが、
hWnd...ウィンドウのハンドル
nID.......アイテムのID
lpStr.....文字列
の意味が分かりません。
Sub MainWnd_IDM_strong_MenuClick()
End Sub
の方はできました。
Posted: 2007年9月17日(月) 20:11
by S/AL
ほんとうにすみませんでした。
色々試してみたら出来ました。
私のくだらない質問に付き合っていただき有難うございました。