请问setTimer的效果是否可以设置成全局的呢 是否能通过一个setTimer而在每一个窗口中都产生作用呢?比如我要实现无论我当前在程序的那个窗口,每50秒就自动弹出提示,该如何实现 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1. 自定义一个定时器ID,比如#define IDT_MYTIMER 20002. 自定义一个消息ID,比如#define WM_MYMESSAGE WM_USER + 10012. 在主窗口中设置一个定时器SetTimer(IDT_MYTIMER, 1000, NULL);3. 在当定时器事件函数中, 当时间到了就把该消息发送当前窗口: CYourDlg::OnTimer(UINT nIDEvent) { if (IDT_MYTIMER == nIDEvent) ::PostMessage(::GetActiveWindow() , WM_MYMESSAGE, NULL, NULL ); CDialog::OnTimer(nIDEvent); }4. 在所有窗口都写一个你自定义的消息处理函数 LRESULT CYourDlg::OnMyMessage(WPARAM wParam, LPARAM lParam) { // do something } 谢谢楼上的,但是我有点不明白,为什么当我的主窗口没有激活的时候,他也能执行其中所订制的settimer呢,难道settimer是无论本窗口是否激活都有效果的么 如何实现日期的月份相加? 分割窗口 24位位图,裁减出左边一部分,出现问题: 颜色和原图不匹配, 位置偏移1像素,谁能帮我解决一下? MDI 中如何激活已打开的窗口 WTL使用DDX时参数转换错误,看看怎么回事啊 2003的ddk支持vs6么 求如何实现对话框程序自动隐藏?捎带问一个CMenu的问题,呵呵 怎样绘制点线? 我想在windows下做监控软件,应该用什么样的hook? 我想在对话框中加一个东东……?? 如何让自己的程序界面象windows的媒体播放器那样花哨? 请问:如何调用.exe可执行程序
2. 自定义一个消息ID,比如#define WM_MYMESSAGE WM_USER + 1001
2. 在主窗口中设置一个定时器SetTimer(IDT_MYTIMER, 1000, NULL);
3. 在当定时器事件函数中, 当时间到了就把该消息发送当前窗口:
CYourDlg::OnTimer(UINT nIDEvent)
{
if (IDT_MYTIMER == nIDEvent)
::PostMessage(::GetActiveWindow() , WM_MYMESSAGE, NULL, NULL );
CDialog::OnTimer(nIDEvent);
}
4. 在所有窗口都写一个你自定义的消息处理函数
LRESULT CYourDlg::OnMyMessage(WPARAM wParam, LPARAM lParam)
{
// do something
}