MFC初学之音乐播放器1_2续

2.基于对话框制作动态小图标

在 CDlg类中添加 成员变量
  int timenum;
  HICON m_hIcon1;
  HICON m_hIcon2;
  HICON m_hIcon3;

↑可以右击Dlg类添加变量,变量类型HICON 变量m_Icon1,2,3。
在CDlg的构造函数中初始化 上面定义的timercount,m_Icon1,m_Icon2,m_Icon3三个成员变量如下
 timenum=0;
 m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);//这里可以修改初始图标
 m_hIcon1= AfxGetApp()->LoadIcon(IDI_ICON1);
 m_hIcon2 = AfxGetApp()->LoadIcon(IDI_ICON2);
 m_hIcon3 = AfxGetApp()->LoadIcon(IDI_ICON3);
 AfxGetApp();
其中
IDI_ICON1同单文档制作动态小图标类似,右击Dlg添加Icon资源。。。。
具体代码如下:
CType22Dlg::CType22Dlg(CWnd* pParent )
 : CDialog(CType22Dlg::IDD, pParent)
{
 //{{AFX_DATA_INIT(CType22Dlg)
  // NOTE: the ClassWizard will add member initialization here
 //}}AFX_DATA_INIT
 // Note that LoadIcon does not require a subsequent DestroyIcon in Win32
 timenum=0;
 m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
 m_Icon1 = AfxGetApp()->LoadIcon(IDI_ICON1);
 m_Icon2 = AfxGetApp()->LoadIcon(IDI_ICON2);
 m_Icon3 = AfxGetApp()->LoadIcon(IDI_ICON3);
}

之后再在 OnInitalDlg();函数中设置定时器;

BOOL CType22Dlg::OnInitDialog()
{
 CDialog::OnInitDialog();
 // Add "About..." menu item to system menu.
 // IDM_ABOUTBOX must be in the system command range.
 ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
 ASSERT(IDM_ABOUTBOX < 0xF000);
 CMenu* pSysMenu = GetSystemMenu(FALSE);
 if (pSysMenu != NULL)
 {
  CString strAboutMenu;
  strAboutMenu.LoadString(IDS_ABOUTBOX);
  if (!strAboutMenu.IsEmpty())
  {
   pSysMenu->AppendMenu(MF_SEPARATOR);
   pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
  }
 }
  // 设置此对话框的图标。  当应用程序主窗口不是对话框时,框架将自动
  //  执行此操作
  SetIcon(m_hIcon, TRUE);			// 设置大图标
  SetIcon(m_hIcon, FALSE);		// 设置小图标
 
 // TODO: Add extra initialization here
 SetTimer(1,1,NULL);//定时器的ID是1,并且每隔1ms产生一个WM_TIME消息
 return TRUE;  // return TRUE  unless you set the focus to a control
}
在CDlg中添加一个 WS_TIME的消息响应函数
void CType22Dlg::OnTimer(UINT nIDEvent)
{
 // TODO: Add your message handler code here and/or call default
 timenum++;   //每隔1ms自动加1
 if(timenum==50)
  AfxGetMainWnd()->SetIcon(m_hIcon1,FALSE);
 else if(timenum==80)
  AfxGetMainWnd()->SetIcon(m_hIcon2,FALSE);
 else if(timenum==110)
 {
  AfxGetMainWnd()->SetIcon(m_hIcon3,FALSE);
  timenum=0;
 }
 CDialog::OnTimer(nIDEvent);
}




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值