在一个按钮的响应函数中,能获得消息发生的时间么?

shangke_sks 2005-03-18 09:54:54
在一个按钮的响应函数中,能获得消息发生的时间么?
typedef struct tagMSG {
HWND hwnd;
UINT message;
WPARAM wParam;
LPARAM lParam;
DWORD time;
POINT pt;
} MSG, *PMSG;

其中那个time纪录着消息发出的时间,请问如何在OnBtnDown函数中获取到按钮按下的时间,而不是函数运行的时间?
...全文
89 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
TianChong 2005-03-19
  • 打赏
  • 举报
回复
单线程也可以灰掉呀
在按下按钮的处理事件中,第一行代码就灰掉这个按钮,以后如果处理事件完毕或出错就显示出错提示再重新Enable,如果顺利结束则最后一句Enable这个按钮.
shangke_sks 2005-03-18
  • 打赏
  • 举报
回复
情况是这样的,按钮按下的函数需要一段时间才能结束,其间如果再次点击这个按钮的话,这个函数运行完一次后,马上再次运行。

在函数的开始或结尾处添加提示对话框是很好的解决办法,但是觉得还是尊重设计书比较好。所以我想到了检查消息的时间。
dfyang 2005-03-18
  • 打赏
  • 举报
回复
重载PreTranslateMessage(MSG* pMsg)
张佩 2005-03-18
  • 打赏
  • 举报
回复
pretranslatemessage中使用GetCurrentTime
lshadow 2005-03-18
  • 打赏
  • 举报
回复
如果不是对时间精度要求很高的话,不需要考虑消息分派的时间。
吹泡泡的小猫 2005-03-18
  • 打赏
  • 举报
回复
到OnBtnDown触发时,消息已经被分派处理了好几次了,最好在窗口的
可以在pretranslatemessage中判断,如果是WM_COMMAND消息就检查按钮ID,如果ID符合就把时间记录下来
shangke_sks 2005-03-18
  • 打赏
  • 举报
回复
楼上的说的方法不行。这个是单线程的。
oyljerry 2005-03-18
  • 打赏
  • 举报
回复
要不按下后灰掉按钮,等函数完了,再Enable

15,979

社区成员

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

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