wchar_t szBuffer[]={0} ; //L"0";
wcscpy(szBuffer, L"我");
unsigned int is[512]=0;
is[0]=szBuffer[0];
::PostMessageW(hWnd_T,WM_IME_CHAR,is[0],0);
發數字沒問題。發中文怎么就不可以呢
uj5u.com熱心網友回復:
std::wstring ss(L"中國人123");for(int i=0; i<ss.size(); ++i)
{
::PostMessage(editWin, WM_CHAR, ss[i], 0);
}
uj5u.com熱心網友回復:
好像忘了說,我的程式不是Unicode編碼的。對方是Unicode
一個unicode的字符這樣直接轉換成數字對嗎?
記事本我好像試過可以的。但記事本是ansi編碼的。
我的對話框是東方財富軟體的對話框
是不是對話框不接收中文?好像沒道理,為什么輸入法可以打進去呢?
uj5u.com熱心網友回復:
用::PostMessage,訊息內容用UTF-8編碼發送uj5u.com熱心網友回復:
PostMessage會進入佇列的,引數要用new出來的buf,樓主用臨時buf,這個不會被釋放掉嗎這種有代碼一下就可以調好了
uj5u.com熱心網友回復:
不好意思看錯了,不過這種編碼問題有代碼也很容易調出來的uj5u.com熱心網友回復:
還有問題哦,只能發出數字。后面中文沒反應。參考了3樓的說法。wchar_t szBuffer[]={0} ;
wcscpy(szBuffer, L"60我是中國人");
int len = WideCharToMultiByte(CP_UTF8, 0,szBuffer, -1, NULL, 0, NULL, NULL);
char* utf8=new char[len+1];
WideCharToMultiByte(CP_UTF8, 0, szBuffer, -1, utf8, len, NULL,NULL);
utf8[len]=0;
for(i=0;i<len+1;i++)
{
PostMessage(hWnd_JPJL_T2,WM_IME_CHAR,utf8[i],1); //Ansi
Sleep(50);
}
delete []utf8;
還是不行哦。。幫幫忙。
uj5u.com熱心網友回復:
用輸入法鍵盤直接輸入行么?是否目標視窗設定了ES_NUMBER 屬性,就不支持中文?
可以把視窗句柄換成記事本編輯框試試看
uj5u.com熱心網友回復:
PostMessage 訊息發出去就回傳,不等對方回應, 你的szBuffer是臨時變數, 被釋放前訊息不一定發的出去, 改用sendmessage或wm_copydatauj5u.com熱心網友回復:
輸入法輸入可以的。uj5u.com熱心網友回復:
PostMessage 訊息發出去就回傳,不等對方回應, 你的szBuffer是臨時變數, 被釋放前訊息不一定發的出去, 改用sendmessage或wm_copydata回復,試了也不行
uj5u.com熱心網友回復:
無聊回復一下,沒救。uj5u.com熱心網友回復:
wchar_t szBuffer[]={0} ;轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/18545.html
標籤:基礎類
上一篇:GetDC得到的設備dc不會更新
