关于网友提出的“ 做一个工作指示灯,1秒闪烁一次,开始用按钮控件结果刷屏效果明显,现改为picture control问题是不能切换显示”问题疑问,本网通过在网上对“ 做一个工作指示灯,1秒闪烁一次,开始用按钮控件结果刷屏效果明显,现改为picture control问题是不能切换显示”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: 做一个工作指示灯,1秒闪烁一次,开始用按钮控件结果刷屏效果明显,现改为picture control问题是不能切换显示
描述:控件
1.控件

2.初始化
HICON m_hIcon_open; //图标句柄 Led开
HICON m_hIcon_close; //图标句柄 Led关
CStatic m_icon_state; //图标变量
3.调用
if((g_one_second_flag != NO) && (g_starting_flag == YES))
{
m_hIcon_open = LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDI_ICON1_OPEN));//加载图标资源
m_icon_state.SetIcon(m_hIcon_open,TRUE);
CRect rect1(428,181,462,214); //刷新显示
InvalidateRect(&rect1,FALSE); //矩形区域失效
}
else if((g_one_second_flag == NO) && (g_starting_flag == YES))
{
m_hIcon_close = LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDI_ICON2_CLOSE));//加载图标资源
m_icon_state.SetIcon(m_hIcon_close,TRUE);
CRect rect1(428,181,462,214); //刷新显示
InvalidateRect(&rect1,FALSE); //矩形区域失效
}
4.问题:控件不能显示图标,只有一个方块,更谈不上每隔1秒切换一次图标了,是不是还要在ON_PAINT里设置什么
解决方案1: 图片切换一般用双缓存技术,有点麻烦,还不如直接画
解决方案2: Center Image设置为TRUE
https://msdn.microsoft.com/zh-cn/library/vstudio/5w91yh47(v=vs.110).aspx
另外,不要在定时器里加载LoadIcon, SetIcon,这些可以放在OnInitDialog里面,定时器里直接Invalidate就可以了
解决方案3: 直接画 就好了 写个timer
以上介绍了“ 做一个工作指示灯,1秒闪烁一次,开始用按钮控件结果刷屏效果明显,现改为picture control问题是不能切换显示”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/3622897.html