1、定义你的消息
2、在需要发送的地方发送(必须明确发给谁)
3、在接收消息的地方定义消息响应函数
4、完成如下(加了*号的地方)工作:
BEGIN_MESSAGE_MAP(C……, C……)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_WM_CLOSE()
ON_WM_TIMER()
*ON_MESSAGE(IDC_???, On???)
*ON_MESSAGE(IDC_???, On???)
END_MESSAGE_MAP()
2、在需要发送的地方发送(必须明确发给谁)
3、在接收消息的地方定义消息响应函数
4、完成如下(加了*号的地方)工作:
BEGIN_MESSAGE_MAP(C……, C……)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_WM_CLOSE()
ON_WM_TIMER()
*ON_MESSAGE(IDC_???, On???)
*ON_MESSAGE(IDC_???, On???)
END_MESSAGE_MAP()
解决方案 »
- 求教!关于atlsd.lib的LNK2019问题
- 怎样复制光标图片到VC程序中?
- 9998端口有什么特殊的地方
- 懂windowsAPI的都可以进~~程序出错了,不知道哪里错了找了二天了也没有找到,请高手看看~~
- 想做个 灌水机器人, 哪位大侠能给点建议呢?
- 大内存 大数据处理
- _beginthread and AfxBeginThread有什麼區別. 是不是高手都來up一下。
- 怎样将一个类添加到一个工程中?
- 怎么用CSplitterWnd分割3个窗口?
- VC+ADO对每个表都得自己写一个类用来绑定吗?不会这烦吧?!
- ★★★快来抢100分★★★:microsoft Forms 2.0 textbox中怎么不能输入英文,而且里面的文字前面总有空格,谁知道它的用法?
- 如何送分????教会送分!
而且我曾在一个原来的工程中成功过,但新建一个后我再仿照作一遍,就不行了呢,
我真菜鸟
我试了if ( pMsg->message == WIN_MSG_TEST) 没有反应呀, 你还有何高见吗,请赐教!
解决了~~~~~~~~原来不是这么回事`~~~其实很简单~~~~
你发送的消息用的是SendMessage, 也就是说, 这个消息要直接发送到指定的线程来并等待着被处理直到处理结束, 消息也就被销毁;
所以如果你想用PreTranslateMessage来捕获消息就应该用PostMessage函数, 它的作用是不管消息是否被处理, 都将继续, 消息也不是直接发送到某个线程, 而是发送到消息队列当中等待处理~~~
不知这样的解释你是否明白, 我也没有太多的经验~~~~~~
对了, 你解决的例子可以给我来一份吗,谢谢:)
[email protected]
if ( pMsg->message ==MY_MESSAGE)
。
即可捕获自定义消息MY_MESSAGE 当然前面还要定义消息映射及其函数了
感谢大家热心的参与:)