文字反転させるには?


C’  2003-05-14 18:43:37  No: 51372

はじめまして。。。
VCで文字反転させたいのですが、やり方がわかりません。
VBではCelStartとCelLengthを使ってできるのですが
VCではどう書くかわかりません。
VC初心者なんでサンプルがあるとうれしいのですが・・・。
どなたかご存知の方がいましたら、よろしくお願いします。


瀬戸っぷ  2003-05-14 18:58:09  No: 51373

元々の文字列と同じだけのメモリを確保して、
文字数を保持した変数と、確保したメモリの先頭を指すポインタ、
元々の文字列の最後の文字を指しているポインタを用意して、
元の文字列の方のポインタはデクリメント、確保したメモリのポインタはインクリメントしながら元の文字列から確保したメモリの方へコピーしていけばよろしいかと。
コピーを繰り返す回数は文字列の長さ分で。
(ただし、1バイト文字(ASCII文字)の場合だけですが)

終わったあと、確保したメモリは不要になった時に破棄する必要があります。


YuO  2003-05-14 19:28:13  No: 51374

> VCで文字反転させたいのですが、やり方がわかりません。

「文字反転」というのは何を意味していますか?

> VBではCelStartとCelLengthを使ってできるのですが
> VCではどう書くかわかりません。

VBにCelStartやCelLengthというメソッド・プロパティetc.は無いと思いますが。

SelStartとSelLengthであれば,
EM_SETSELメッセージをコントロールに投げることで設定できます。
#取得はEM_GETSEL


これ?  2003-05-14 19:43:59  No: 51375

サンプルって言われると困るんですけど
m_edit.SendMessage( EM_SETSEL,1,5);

みたいなことですか?


これ?  2003-05-14 19:45:38  No: 51376

すいません、かぶりました。
リロードしてませんでした。


瀬戸っぷ  2003-05-14 19:48:24  No: 51377

むぅ…
エディトボックスって場合を考慮していなかった(^_^;)

YuOさん、これ?さんフォローどうもです。


C'  2003-05-14 20:14:48  No: 51378

ありがとうございます。
>VBにCelStartやCelLengthというメソッド・プロパティetc.は無いと思いますが。

Private Sub Text1_GotFocus()
    Text1.SelStart = 0
    Text1.SelLength = Len(Text1.Text)
End Sub

でした。すいません
EM_SETSELメッセージをいまからやってみます。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加