掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
カタカナを自動で表示するには? (ID:83901)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
VB.NETにて、テキストボックスに入力された(氏名)のカタカナを 他のテキストボックスに自動で表示したいのです。 6.0の時は、APIを使用しIMM32より取得できましたが .NETでは、AS ANY は使用できない。 '********************************************* ' 変換文字列に関する情報を取得する関数の宣言 Declare Function ImmGetCompositionString _ Lib "imm32.dll" _ Alias "ImmGetCompositionStringA" _ (ByVal hIMC As Long, _ ByVal dwIndex As Long, _ lpBuf As Any, _ '<-------------ここ ByVal dwBufLen As Long) As Long '********************************************* strBuffer の固定長バッファもエラーになります。 '********************************************* Private Sub txt氏名_Change(Index As Integer) Dim lngImeContext As Long Dim strBuffer As String * 256 '<----- Dim strFurigana As String Dim lngResult As Long ' 入力コンテキストを取得 lngImeContext = _ ImmGetContext(txt氏名(Index).hWnd) ' 変換文字列に関する情報を取得 lngResult = _ ImmGetCompositionString( _ lngImeContext, _ GCS_RESULTREADSTR, _ ByVal strBuffer, _ Len(strBuffer)) ' 入力コンテキストを解放 lngResult = _ ImmReleaseContext( _ txt氏名(Index).hWnd, _ lngImeContext) ' 取得した文字列からNull文字を削除 strFurigana = Replace(strBuffer, vbNullChar, "") ' 取得した文字列からスペースを削除 strFurigana = Replace(strFurigana, " ", "") ' 結果を表示 If strFurigana <> カナ退避 Then txtカナ(Index).Text = txtカナ(Index).Text & strFurigana カナ退避 = strFurigana End If End Sub '*********************************************** よろしくお願いいたします。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.