WM_CLOSE,微软全拼输入法,全角,数字。

iamcaicainiao 2008-09-03 03:58:22
我在 windows xp 下面,切换到微软全拼输入法,切换成全角,输入任意数字,诸如12345,不停地输入,会得到WM_CLOSE消息。这个WM_CLOSE消息哪里来的哦?

有朋友有类似经历么?如何解决?

全角的情况下,输入汉字,没有这个问题。
切换成半角,输入数字或者汉字,都没有这个问题。
windows xp下,搜狗输入法也没这个问题。
windows vista下,微软全拼输入法也没这个问题。
...全文
2823 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
iamcaicainiao 2008-09-04
  • 打赏
  • 举报
回复
多谢多谢。
cnzdgs 2008-09-04
  • 打赏
  • 举报
回复
关键就是要调试这个DLL项目,不设置启动项目也可以用鼠标右击这个项目选择调试,VS就是这样设计的,所以我们只能按照规定来办。
iamcaicainiao 2008-09-04
  • 打赏
  • 举报
回复
在“调试”中把“调试器类型”设置为混合,
--------------
本来是auto,我把它改成mixed,但这个应该是都可以的吧。


把EXE程序及路径添加到“命令”后面。
--------------
这个本来就已经添加在后面了哦。


再把该DLL项目设置为启动项目
-----------------------------
奇迹出现了,大哥,断点打上了哦。谢谢。哈哈。(我此前一直没做的就是这一步,以前都是从WPF启动的,因为main程序在那里)
这一步有什么重要意义呢?


放心吧。这100分至少给你90.

我先继续干活,争取找到这个WM_CLOSE消息的来源。
NIKE霸天虎 2008-09-04
  • 打赏
  • 举报
回复
程序有异常直接终止了
cnzdgs 2008-09-04
  • 打赏
  • 举报
回复
那就需要混合模式了,设置VC的DLL项目属性,在“调试”中把“调试器类型”设置为混合,把EXE程序及路径添加到“命令”后面。再把该DLL项目设置为启动项目,然后再调试。
iamcaicainiao 2008-09-04
  • 打赏
  • 举报
回复
异常可以抛出。程序直接终止了。
iamcaicainiao 2008-09-04
  • 打赏
  • 举报
回复
我的程序有WPF(C#)的。界面都是WPF。

抛个异常?什么意思?想做什么呢?
cnzdgs 2008-09-04
  • 打赏
  • 举报
回复
混合模式调试是用多种编程语言混合编程的时候用的,你的程序应该是只有VC吧。你可以在WM_CLOSE消息响应函数中抛个异常试试。
iamcaicainiao 2008-09-04
  • 打赏
  • 举报
回复
已经 enable unmanaged code debuggin了。
网上很多人碰到类似问题,勾上这个选项就可以了。我这边确还是不行。
iamcaicainiao 2008-09-04
  • 打赏
  • 举报
回复
我在网上看到

Mixed Mode (Native and Managed Simultaneous) Debugging
If you are debugging in mixed mode, be sure the Modules window is showing both managed and unmanaged modules (right click on it and select Show Modules for all Processes) and make sure you are looking at the module type that matches your breakpoint.

但是我这边右键单击modules window,没有什么“show modules for all processes”啊。

但我怀疑我这边的问题就是那些C++代码没找到对应的DLL什么的。没加载那些module。不知道怎么解决。
iamcaicainiao 2008-09-04
  • 打赏
  • 举报
回复
是的,不行,但是MessageBox确实弹出来了,但是断点打不上,进不去。
cnzdgs 2008-09-04
  • 打赏
  • 举报
回复
你加上MessageBox,在MessageBox这行上设置断点也不行吗?
iamcaicainiao 2008-09-04
  • 打赏
  • 举报
回复
断点打不上,显示
The breakpoint will not currently be hit. No executable code is associated with this line.
Possible causes include: conditional compilation ro compiler optimizations.

但是我在打断点的地方设置MessageBox,照样弹出Message。说明代码肯定是执行到了那里了。不知道为啥,断点打不上。
iamcaicainiao 2008-09-04
  • 打赏
  • 举报
回复
项目既包含 托管代码,也包含非托管代码。

C++的那一块,断点死活打不上,怎么回事?
我已经enable了 调试非托管代码

Debug的时候,Modules window里面,只有托管的EXE和dll被加载了。没有非托管的dll。

如何解决?有朋友有类似经验么?
jyh_baoding 2008-09-04
  • 打赏
  • 举报
回复
可能是输入法的问题,也可能和平台有关系
iamcaicainiao 2008-09-04
  • 打赏
  • 举报
回复
断点打不上,我还真是郁闷。
iamcaicainiao 2008-09-03
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 cnzdgs 的回复:]
如果只在你的程序中有问题,那就不是输入法的bug了,你在响应WM_CLOSE消息的代码上加个断点,看看从调用堆栈窗口的信息能否找到产生这个消息的地方。
[/Quote]
我来试试看。
longrb 2008-09-03
  • 打赏
  • 举报
回复
还有这等事,哈哈,等待答案中....
cnzdgs 2008-09-03
  • 打赏
  • 举报
回复
如果只在你的程序中有问题,那就不是输入法的bug了,你在响应WM_CLOSE消息的代码上加个断点,看看从调用堆栈窗口的信息能否找到产生这个消息的地方。
iamcaicainiao 2008-09-03
  • 打赏
  • 举报
回复
而且奇怪的是,在notepad里面,全拼输入法,输入无数个数字,没有这种问题啊,要么notepad处理了,要么就是根本没这个问题。

但是我的这个软件竟然有这个问题,老是收到WM_CLOSE消息,然后弹出对话框,问是否要保存当前的文档。

所以,也可能不单单是输入法的问题。也可能是了,暂时我还不确定。
加载更多回复(4)

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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