DOBON.NETプログラミング道掲示板
(現在 過去ログ4 を表示中)

[ 最新記事及び返信フォームをトピックトップへ ]

■34427 / inTopicNo.1)  Editボックスに簡体字をセットする方法
  
□投稿者/ 山猿 一般人(1回)-(2020/02/22(Sat) 22:34:48)
  • アイコン環境/言語:[Windows10、VB.Net、.Net(V4.6.2)] 
    分類:[.NET] 

    お世話になります。
    以下の様なコードで、Editボックス(IEのGoogle検索ボックス)に中国簡体字(utf-8)をセットしようとしましたが、簡体字部分が?になってしまいます。
    赵治勋→?治?
    適切な対処方法をご存知の方、おられませんでしょうか。

    Declare Function SendMessageStr Lib "user32.dll" Alias "SendMessageA" (ByVal hWnd As Integer, ByVal MSG As Integer,
    ByVal wParam As Integer, ByVal lParam As System.Text.StringBuilder) As Integer
    Const WM_SETTEXT = &HC


    'utf-8文字
    Dim sb = New StringBuilder("", 256)
    sb.Clear()
    sb.Append("赵治勋")
    SendMessageStr(hwnd, WM_SETTEXT, Len(sb.ToString), sb)


    宜しくお願い致します。

引用返信 削除キー/
■34428 / inTopicNo.2)  Re[1]: Editボックスに簡体字をセットする方法
□投稿者/ Hongliang 大御所(572回)-(2020/02/22(Sat) 23:13:52)
  • アイコン
    末尾にAのついたWindows APIは、文字セットをANSIとして扱う関数であり、
    実行しているWindowsが日本語で動作している場合にはShift_JIS(CP932)で
    定義されている文字しか扱えません。
    A系の関数はWindows 9x系のWindowsとの互換性のために残されているだけですので、
    特に.NETから呼び出す場合は使用する意味がありません。
    // 9x系最後のWindowsであるMEももはや使われていることを想定する必要はないでしょう。
    代わりにW系の関数を使用します。あるいは、Declare Unicodeを使用すればA/Wの
    サフィクスを気にする必要もAliasを指定する必要もありません。
    それよりも、ポインタやハンドルを使う個所はIntegerではなくIntPtrを使用する点に注意すべきです。
    返値であるLRESULTも、定義はLONG_PTR(ポインタを格納できるサイズのLONG型)であるので、IntPtrになります。
    
    Declare Unicode Function SendMessage Lib "user32.dll" (
        ByVal hWnd As IntPtr, ByVal MSG As Integer,
        ByVal wParam As IntPtr, ByVal lParam As String) As IntPtr

引用返信 削除キー/
■34429 / inTopicNo.3)  【報告】この投稿はマルチポストです
□投稿者/ (報告) 大御所(273回)-(2020/02/22(Sat) 23:18:51)
  • アイコンこの投稿はマルチポストです。もし元記事の投稿者にマルチポストの心当たりがない場合は、すぐに返信でお知らせください。

    ●マルチポストされている場所
    http://bbs.wankuma.com/index.cgi?mode=al2&namber=93935

    ----------
    この掲示板ではマルチポストが禁止されています。詳しくは、「書き込みのルールについて」をお読みください。

    ●書き込みのルールについて
    https://dobon.net/vb/bbs/index.html
引用返信 削除キー/



トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

Mode/  Pass/


- Child Tree -