初めてプログラミングをします。
まず、最初にここのプログラミング講座をみながら、テキストエディターを完成させました。
ここで、顔文字機能を追加したいのですが、どうすればわかりません
そこで、SetWindowText関数を使ったのですが、白紙の状態だとうまく追加するのですが、何か文字が入っていると今まで入力した文字が消えちゃいます。どうすればいいでしょうか?
アドバイスを下さい
テキストボックスに顔文字などを入れたい・・・
Re: テキストボックスに顔文字などを入れたい・・・
> そこで、SetWindowText関数を使ったのですが、白紙の状態だとうまく追加するのですが、何か文字が入っていると今まで入力した文字が消えちゃいます。どうすればいいでしょうか?
その質問に関するトピックがかーなーりー定期的に立ってます。いつも答えてます(笑)
SetWindowText()関数は文字列を設定するもので、文字列を追加する関数ではありません。
そこで EM_REPLACESEL というメッセージを使ってちょっと強引ですがエディットボックスに文字列を追加します。
第一引数:ウィンドウのハンドル
第二引数:追加する文字列
第三引数:元に戻せるかどうか。TRUE で戻せる
上記のコードをグローバル領域で宣言しておき、文字列を追加したいタイミングで下記のようなコードを書きます。
その質問に関するトピックがかーなーりー定期的に立ってます。いつも答えてます(笑)
SetWindowText()関数は文字列を設定するもので、文字列を追加する関数ではありません。
そこで EM_REPLACESEL というメッセージを使ってちょっと強引ですがエディットボックスに文字列を追加します。
第一引数:ウィンドウのハンドル
第二引数:追加する文字列
第三引数:元に戻せるかどうか。TRUE で戻せる
コード: 全て選択
Function Edit_AddText(ByVal hWnd As HWND,ByVal lpString As LPSTR,ByVal bUndo As BOOL) As BOOL
SendMessage(hWnd,EM_SETSEL,GetWindowTextLength(hWnd),-1)
Edit_AddText=SendMessage(hWnd,EM_REPLACESEL,bUndo,lpString As LPARAM) As BOOL
End Function
コード: 全て選択
Edit_AddText(GetDlgItem(hMainWnd,EditBox1),"(^-^)",TRUE)