给另一个unicode编码的程序文本框发一个unicode字符,怎么也弄不好

噢麦搞的 2020-03-15 02:52:09
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);
发数字没问题。发中文怎么就不可以呢
...全文
526 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
hhhh63 2020-10-08
  • 打赏
  • 举报
回复
直接用SetWindowText试试
噢麦搞的 2020-09-26
  • 打赏
  • 举报
回复
谢谢楼上两位,这两天我测试一下
an_bachelor 2020-09-25
  • 打赏
  • 举报
回复
你传递的参数是错的,首先按照文档写,不行再考虑其他问题:
lParam
The repeat count, scan code, extended key flag, context code, previous key state flag, and transition state flag, with values as defined below.
Table 1
Bit
Meaning
0-15
Repeat count. Since the first byte and second byte are continuous, this is always 1.
16-23
Scan code for a complete Asian character.
24
Extended key.
25-28
Not used.
29
Context code.
30
Previous key state.
31
Transition state.
schlafenhamster 2020-09-25
  • 打赏
  • 举报
回复
只有 SetWindowText可以跨进程
噢麦搞的 2020-09-25
  • 打赏
  • 举报
回复
到现在也没有解决喔。
说具体点,我就是想解决,在东方财富软件,键盘精灵输入框里,输入“上证指数”,
手动输入肯定可以,软件发送字符数字和英文都可以。就是中文没反应的。
参考了不少别人的代码,都行不通,
现在就是放在一边,等有空了的时候就看一下。
不过这么多个月过去了,就是没找到办法,估计是成为难解之谜了。
高手可以测试一下,下载东方财富软件也很方便的。
可以guest登录的。
做个demo出来,那就太棒了。
woshi_hujunjun 2020-04-08
  • 打赏
  • 举报
回复
wchar_t szBuffer[]={0} ;
噢麦搞的 2020-03-26
  • 打赏
  • 举报
回复
无聊回复一下,没救。
噢麦搞的 2020-03-19
  • 打赏
  • 举报
回复
PostMessage 消息发出去就返回,不等对方回应, 你的szBuffer是临时变量, 被释放前消息不一定发的出去, 改用sendmessage或wm_copydata


回复,试了也不行
我喝多了 2020-03-18
  • 打赏
  • 举报
回复
PostMessage 消息发出去就返回,不等对方回应, 你的szBuffer是临时变量, 被释放前消息不一定发的出去, 改用sendmessage或wm_copydata
zgl7903 2020-03-18
  • 打赏
  • 举报
回复
用输入法键盘直接输入行么? 是否目标窗口设置了ES_NUMBER 属性,就不支持中文? 可以把窗口句柄换成记事本编辑框试试看
噢麦搞的 2020-03-18
  • 打赏
  • 举报
回复
输入法输入可以的。
噢麦搞的 2020-03-17
  • 打赏
  • 举报
回复
还有问题哦,只能发出数字。后面中文没反应。参考了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;
还是不行哦。。帮帮忙。
xsc2001 2020-03-16
  • 打赏
  • 举报
回复
用::PostMessage,消息内容用UTF-8编码发送
走好每一步 2020-03-16
  • 打赏
  • 举报
回复
不好意思看错了,不过这种编码问题有代码也很容易调出来的
走好每一步 2020-03-16
  • 打赏
  • 举报
回复
PostMessage会进入队列的,参数要用new出来的buf,楼主用临时buf,这个不会被释放掉吗 这种有代码一下就可以调好了
噢麦搞的 2020-03-15
  • 打赏
  • 举报
回复
好像忘了说,我的程序不是Unicode编码的。
对方是Unicode
一个unicode的字符这样直接转换成数字对吗?
记事本我好像试过可以的。但记事本是ansi编码的。
我的对话框是东方财富软件的对话框
是不是对话框不接收中文?好像没道理,为什么输入法可以打进去呢?


smwhotjay 2020-03-15
  • 打赏
  • 举报
回复
std::wstring ss(L"中国人123");
for(int i=0; i<ss.size(); ++i)
{
::PostMessage(editWin, WM_CHAR, ss[i], 0);
}

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧