关于WM_TIMER定时器失效问题

君忱 2009-06-05 03:02:32
程序里用 InitializeSkin(_T("XXX.ssk"));导入一个SSK皮肤文件,WM_TIMER就失效了.
之前听说如果运行WM_TIMER时,改变窗体大小WM_TIMER也失效,我判断导入的SSK皮肤文件可能也向窗体发送了某些消息,由于WM_TIMER的优先级比较低所以影响了它(我的判断,如果不对,请各位老师指正)
但现在问题是,不使用线程,还是想用WM_TIMER,能解决以上问题吗?
...全文
361 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
xinba 2009-06-09
  • 打赏
  • 举报
回复
用回调函数就可以解决
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 Lin 的回复:]
同学,SetTimer(xxxx,1000,NULL)并不一定返回xxxx,俺强烈建议你保存其返回值,如:
xxxx=SetTimer(xxxx,1000,NULL);

void CRFID_PDlg::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
if(nIDEvent == xxxx)
{
AfxMessageBox("成功");
}
CDialog::OnTimer(nIDEvent);
}

这样才是ok的。

你看看MSDN关于SetTimer的说明啊,同学
[/Quote]

up
Lin 2009-06-05
  • 打赏
  • 举报
回复
同学,SetTimer(xxxx,1000,NULL)并不一定返回xxxx,俺强烈建议你保存其返回值,如:
xxxx=SetTimer(xxxx,1000,NULL);

void CRFID_PDlg::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
if(nIDEvent == xxxx)
{
AfxMessageBox("成功");
}
CDialog::OnTimer(nIDEvent);
}

这样才是ok的。

你看看MSDN关于SetTimer的说明啊,同学
Ryanwen 2009-06-05
  • 打赏
  • 举报
回复
把TIMER的ID值设大点,界面里用到了很多定时器,应该是冲突了

SetTimer(0x10000,1000,NULL);
lyx_wq 2009-06-05
  • 打赏
  • 举报
回复
这个不懂,不过以前看到过一个帖子说 皮肤里有很多定时器,会不会和你的重了!
君忱 2009-06-05
  • 打赏
  • 举报
回复
我的代码(很简单只是先试试):
void CRFID_PDlg::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
if(nIDEvent == 3)
{
AfxMessageBox("成功");
}
CDialog::OnTimer(nIDEvent);
}

void CRFID_PDlg::OnButton1()
{
// TODO: Add your control notification handler code here
SetTimer(3,1000,NULL);

}

在OnInitDialog()里加入InitializeSkin(_T("XXX.ssk"));,程序整体风格变了,但WM_TIMER 失效了, 如果去掉窗体变成默认风格,WM_TIMER可以实现!为什么,InitializeSkin是网上下的封装好的函数,难道想用WM_TIMER,就不能用这个函数了.请问各位老师,能解决吗?
君忱 2009-06-05
  • 打赏
  • 举报
回复
确实不导入SSK,就OK,我试了!!把InitializeSkin(_T("XXX.ssk"));去掉就一切OK!
na_he 2009-06-05
  • 打赏
  • 举报
回复
那么不导入SSK,WM_TIMER就是OK的吗?个人为于这些没有关系了,看看timer启动了没有呀。

16,472

社区成员

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

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

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