全角文字を確定する前に取得するには

解決


calyu  2005-06-29 11:55:21  No: 123144  IP: [192.*.*.*]

いつも参考にさせてもらっています。
テキストボックスに全角の文字列を入力し確定するときに、
テキストボックスに確定された文字列を入れる前に、入力された文字列の長さなどを取得したいのですが、変数に入れたいのですが可能でしょうか?
宜しくお願いします。

編集 削除
0123  2005-06-29 12:32:31  No: 123145  IP: [192.*.*.*]

下記URLの記事を参考にしてみてはどうでしょう。

http://www.technoproducts.co.jp/win/vb000002.htm
http://www.microsoft.com/japan/msdn/library/ja/jpintl/html/Toppage_IME.asp?frame=true

編集 削除
いな  2005-06-29 12:44:25  No: 123146  IP: [192.*.*.*]

最終目的が、
>テキストボックスに確定された文字列を入れる前に、入力された文字列の長さなどを取得したい。
ならばいいけれど、

#これは過程であって、
#でも、実際にやりたいことは、
#単に、指定文字数以上の入力をさせたくないだけだったりしてね・・・。

編集 削除
通ってみた  2005-07-01 22:56:30  No: 123147  IP: [192.*.*.*]

1:テキストボックスの文字列を文字列変数に入れておく

2:テキストボックスに入力確定したら文字列変数の方の文字列の長さとテキストボックスの長さを比較する(差が入力した文字の長さ)

3:確定したテキストボックスの内容ではマズいのであれば、テキストボックスに文字列変数に入れておいた文字列を入れれば元に戻る

4:ふりだしへ戻る


とか。

編集 削除
夏の朝も天玉うどん  2005-07-02 15:45:14  No: 123148  IP: [192.*.*.*]

まだ解決がチエックされていないので
calyu さんの質問の文章通りに実行しようとしたらどうなるか考えてみました。

まず以下を参考にしてください。
http://www.bcap.co.jp/hanafusa/dotnet/ime01.htm

ここで使用されている定数  Private Const GCS_RESULTREADSTR   を
Public Const GCS_RESULTSTR = &H800  にして、変換後の文字列を取得します。

そして上では  テキストボックスからのイベントをきっかけに処理していますが、
以下を参考に
http://madia.world.coocan.jp/cgi-bin/VBBBS2/wwwlng.cgi?print+200407/04070102.txt
(上のトピックから検索にWndProcといれて検索)
テキストボックスからクラスを作り(書いている私も意味がよくわからないが)

 Private Class MyTextBox
    Inherits TextBox
    
    Protected Overrides Sub WndProc(ByRef m As Message)
      'IMEから送られてくるメッセージをテキストボックスへの描画前に
      '処理
          '上を参考に長さを取得し変数に入れる。        
        MyBase.WndProc(m)
    End Sub
   
End Class
などとして大変なことになると思います。がんばってください。

編集 削除
calyu  2005-07-04 11:08:13  No: 123149  IP: [192.*.*.*]

皆様、お返事ありがとうございました。
貼り付けていただいたURLなど参考にしてみましたが、
あまり経験がなかったのでフローチャートもうまく書けなかったです;;
今回は通ってみたさんのを参考をそのまま考えてみたらできました。

夏の朝も天玉うどんさんのやり方もとても興味があるので、
時間があればまた挑戦してみたいと思います。

皆様、ありがとうございました^^

編集 削除