首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > WinCE >

Wince5.0停的SetWindowLong和Invalidate

2013-07-08 
Wince5.0下的SetWindowLong和InvalidateEVC环境下MFC的一个对话框中,我在初始化对话框时,给Picture控件设

Wince5.0下的SetWindowLong和Invalidate
EVC环境下

MFC的一个对话框中,我在初始化对话框时,给Picture控件设置了一个新的消息处理函数,如下:

oldProc_PIC = (WNDPROC)SetWindowLong(GetDlgItem(IDC_PIC_CTRL)->m_hWnd, GWL_WNDPROC, (LONG)NewProc_PIC);


然后设置了一个定时器,将我获取的图片数据进行循环播放,如下:
Index = Index % m_Count;
imgPath = file[Index];
Index++;
Invalidate(FALSE);


捕获WM_PAINT消息如下:
LRESULT NewProc_PIC(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)     // IDC_PIC控件对应的新的消息函数   
{  
    switch (message)  
    {  
    case WM_PAINT:  
{
if(DrawPic(hWnd))  
{
return S_OK;  
}
else  
{
break;  
}
}
    default:  
        break;  
    }  
    return CallWindowProc(oldProc_PIC, hWnd, message, wParam, lParam);     // 调用默认的消息函数   
}  


在VS的win32下能正常编译通过且实现了我所需要的功能,但是将其移植到EVC上,仅仅在主对话框时捕获到一次WM_PAINT消息,其他时间都没捕获到了,是什么原因,跪求帮助。。。。。 WinCE C 对话框
[解决办法]
定时器执行到了吗?
[解决办法]
看网上有说法Invalidate这个函数在EVC下面没有效果,手头没有EVC环境没法验证

热点排行