WEB开发网
开发学院软件开发VC XP风格复活节彩蛋的实现 阅读

XP风格复活节彩蛋的实现

 2010-06-23 20:41:07 来源:WEB开发网   
核心提示:2、隐藏信息的激活或隐藏的函数//功能: 是否荣誉显示void CAboutDlg::OnMore(){m_bVertical = !m_bVertical;if(m_bVertical == FALSE)//不显示{SetDlgItemText(ID_MORE,_T("更多>>"));

2、隐藏信息的激活或隐藏的函数

//功能: 是否荣誉显示
void CAboutDlg::OnMore()
{
  m_bVertical = !m_bVertical;

  if(m_bVertical == FALSE)  //不显示
  {
    SetDlgItemText(ID_MORE,_T("更多>>"));
    SizeWindow(m_nReducedHeight,true);
  }
  else            //显示
  {
    SetDlgItemText(ID_MORE,_T("<<隐藏"));
    SizeWindow(m_nReducedHeight,false);
  }

  UpdateWindow();
}
//功能: 伸展或收缩对话框
void CAboutDlg::SizeWindow(int ReduceHeight, bool bExtend)
{
  CRect rc;
  GetWindowRect(&rc);
  if(bExtend)
  {
    for (int i= 0; i < ReduceHeight; i++)
    {
      rc.bottom--;
      MoveWindow(&rc);
    }
  }
  else
  {
    for (int i= 0; i < ReduceHeight; i++)
    {
      rc.bottom++;
      MoveWindow(&rc);
    }
  }
}

3、在特殊的键盘及鼠标热键下激隐藏信息显示

//功能: 鼠标热键,在图片框按住Ctrl键,双击鼠标右键可显示,显示隐藏的信息。
void CAboutDlg::OnRButtonDblClk(UINT nFlags, CPoint point)
{
  if(nFlags==(MK_CONTROL|MK_RBUTTON ))
  {
    CPictureEx *pAbout =(CPictureEx *)GetDlgItem(IDC_FLAG);
    CRect rcAbout;
    pAbout->GetWindowRect(&rcAbout);

    CPoint pt;
    GetCursorPos(&pt);
    if(rcAbout.PtInRect(pt))
      OnMore();
  }
  CDialog::OnLButtonDblClk(nFlags, point);
}
//*功能:键盘热键<Ctrl+Alt+F3键>显示隐藏的信息
LRESULT CAboutDlg::OnHotKey(WPARAM wParam,LPARAM lParam)
{
  if(wParam==WM_SHOWHOTKEY)
  {
    OnMore();
  }

  return 0;
}

4、别忘了收尾工作,销毁已注册的系统热键

//* 功能:程序关闭时的处理工作
BOOL CAboutDlg::DestroyWindow()
{
  //注销已注册的系统热键
  UnregisterHotKey(GetSafeHwnd(),WM_SHOWHOTKEY);
  return CDialog::DestroyWindow();
}

以上部分代码具体实现的细节问题,可在下载实例代码后,仔细查看源码既可(内有详细注释)。

联系方式:

地址:陕西省西安市劳动路2号院六单元

邮编:710082

作者EMAIL:jingzhou_xu@163.net

未来工作室(Future Studio)

本文配套源码

上一页  1 2 

Tags:XP 风格 复活节

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接