使用WM_PASTE 和 WM_CHAR 消息時中文亂碼總結

    當我們需要設置編輯框顯示文本的時候,如果其它方式無法實現,可以試試WM_PASTE 和 WM_CHAR。

    但使用這兩種消息很容易出現中文亂碼的情況,那怎麼解決呢?

    

    首先,要確定程序沒有寫錯!比如hwnd無效、焦點沒有在目標編輯框上等。

    然後,確定英文是可以正常使用的。


    在確定了上面2條之後,就基本可以確定亂碼是編碼問題了。

     

    WM_PASTE關鍵點在於粘貼板數據的設置:

    1,SetClipboardData  的數據格式應該設置爲 CF_UNICODETEXT

    2,GlobalAlloc 最好設置爲  GMEM_MOVEABLE, 並且cpy字符串時要使用unicode編碼字符串。


    WM_CHAR關鍵點:

    1,原始字符串unicode類型

    2,取出要發送的中文的時候直接取出完整漢字,不要按位。一個漢字只需要SendMessage一次!不要被抄來抄去的文章給忽悠了。



示例代碼:


    


    


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章