随笔-145  评论-173  文章-70  trackbacks-0
1.自动改变图标:
       需要通过SetTimer函数来实现,通过设置一个定时器,然后重载OnTimer函数,添加相应的改变代码,然后,每经过一定的时间都调用OnTimer函数,然后,在此函数中,修改图标即可。每经过一定的时间都改变,实现了自动改变。
过程:
 1.添加三个ICON资源。即BITMAP图片。
2.为CMainFrame添加一个数组变量:HICON m_hIcon[3];
3.在OnCreate函数中,添加响应代码,主要的就是对数组赋值,每一个通过loadIcon来赋值。
4.添加响应的消息,对WM_TIMER消息进行响应的消息OnTimer函数,注意一定要有消息映射,否则不会成功。
代码:

在OnCreate函数中添加:
    m_hIcon[
0= LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDI_ICON1)); 

//加载图标
    m_hIcon[1= LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDI_ICON2));
    m_hIcon[
2= LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDI_ICON3));
    SetTimer(
1,1000,NULL);        //设置定时器
添加消息WM_TIMER消息响应OnTimer函数。
void CMainFrame::OnTimer(UINT nIDEvent) 
{
    
// TODO: Add your message handler code here and/or call default
    static int index = 0;
    SetClassLong(m_hWnd,GCL_HICON,(LONG)m_hIcon[index]);
    index 
= ++index % 3;
    CFrameWnd::OnTimer(nIDEvent);
}


通过一个定时器来自动执行刷新功能,不断的改变图标内容。特别主要要消息映射,否则的

话可能不会有效。

===========================================================================================
2,添加程序的启动画面

非常简单,利用它的自带组建即可。Add to Project----Compents and Controls-----Visual C++ Compenents -----Splash screen.
剩下的就直接运行了,OK。
如果需要自带的图片,那么编辑一张图片,换成ID和默认的相同的,并且删除默认的即可。
注意,在VC 6.0中,不支持超过256的真彩色,于是,可能程序不会正常运行,显示。
此时,如果更换为VS 2005或更高就可以了,也可以通过转化格式来使得VC 6.0支持,但是,方法都是相同的。
于此同时,可以在组件类Splash中,OnCreate的函数中修改那个SetTimer函数来更改时间即可。这样,启动的时间也就可以自由的改变。
posted on 2010-02-16 22:12 deercoder 阅读(583) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理