文字反転させるには?


C’  2003-05-14 09:43:37  No: 51372  IP: [192.*.*.*]

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

編集 削除
瀬戸っぷ  2003-05-14 09:58:09  No: 51373  IP: [192.*.*.*]

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

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

編集 削除
YuO  2003-05-14 10:28:13  No: 51374  IP: [192.*.*.*]

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

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


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

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

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

編集 削除
これ?  2003-05-14 10:43:59  No: 51375  IP: [192.*.*.*]

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

みたいなことですか?

編集 削除
これ?  2003-05-14 10:45:38  No: 51376  IP: [192.*.*.*]

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

編集 削除
瀬戸っぷ  2003-05-14 10:48:24  No: 51377  IP: [192.*.*.*]

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

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

編集 削除
C'  2003-05-14 11:14:48  No: 51378  IP: [192.*.*.*]

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

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

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

編集 削除