画面上に作成したコマンドボタンを
押した時にエディットコントロールに表示したいのですが
どうすればいいでしょうか?
0〜9までのボタンを作ってそれをキーボードの
テンキーのように使いたいのですがうまくいきません。
例えば0を押された時にPostMessageで表示させたいエディットコントロールに
WM_CHARもしくはWM_KEYDOWNで送信すると、1文字なら表示されるのですが
次にボタンを押すと初めに押して表示されていた0が消えて上書きされたように
なります。どうすればいいでしょうか?教えて下さい。
ちなみにMFCは使ってません。
ちわー
自分だったらダイアログベースでアプリを作って、(関係ないけど)
キーメッセージ捕まえたら(switch caseで)SetWindowTextもしくは
SetDlgItemTextで自力で書きに行くかなぁ〜 と。
まぁ ここまでは同じだと思うんすけど(上書きされる)
その前にGetWindowTextで現在表示されてる0〜9までの文字列とって
バッファに追加していって、最後に書きにいけばよいのでは?
bufに追加する場合はlstrcatまたはwnsprintf系で。。。
あり? ロジックも問題??
駄目?
http://www.microsoft.com/japan/developer/library/vcmfc/_mfc_cedit.3a3a.replacesel.htm
でどうでしょう?
上記ページはMFCの説明ですが、下の抜粋のとおり、対応するSDKが示されている
ので、それを調べてみて下さい。
==抜粋始め==
> 現在選択されているテキストがないとき、置き換えたいテキストは現在のカーソル位置に挿入されます。
> 詳細については、Win32 SDK の「EM_REPLACESEL」を参照してください。
==抜粋終わり==
SSAさんありがとうございました。
うまくいきました。
fujisawaさんのやり方は以前に自分でやってたんですけど、
カーソル位置に挿入っていうのがほしかったんですよー。
けど、情報提供ありがとうございます。(^^)
ツイート | ![]() |