一种可用于系统动态显示关于信息的方法

http://tech.ddvip.com   2006年04月02日    社区交流

本文详细介绍一种可用于系统动态显示关于信息的方法

  建立一个用于显示相关信息的对话框资源,修改对话框属性,Style->Popup,Border->None;并建立对话框类CShowAboutDlg;然后在对话框上面放置一个CSTATIC控件,并调整位置.

  在VIEW中创建这个无模式的对话框然后显示:

  CShowAboutDlg *m_pAboutDlg;

  CRect rect;

  m_pAboutDlg = new CShowAboutDlg();

  m_pAboutDlg->Create(IDD_ABOUT);

  m_pAboutDlg->MoveWindow(CRect(18,18,::GetSystemMetrics(SM_CXSCREEN)-13,::GetSystemMetrics(SM_CYSCREEN)-16),TRUE); //因为背景图片有一个边框,所以这里应该吧那个位置留出来

  m_pAboutDlg->GetClientRect(&rect);

  m_pAboutDlg->m_AboutCtrl.MoveWindow(rect,TRUE);//是这个PIC控件占满对话框客户区域

  m_pAboutDlg->ShowWindow(SW_SHOW);

  下面就是加入字模显示控件类的文件了.将ZgMemDC ,ZgDraw.h,ZgDraw.cpp,TitleShow.h,TitleShow.cpp,PublicClass.cpp,PublicClass.h加入工程,然后加入AutoFont.h和AutoFont.cpp,这个类功能不用说了,在上篇文章中我已经介绍了.在那位提供字模显示控件类的基础上,我修改了其中的适量代码,进行了文字显示方面的修改,因为那个原来的类的字体不适合我们现在系统显示的要求(^_^).

  然后就是在对话框类中加载显示消息就可以了.

  定义显示CSTATIC类对象位TitleShow,然后在初始化里面添加你的信息显示内容:

  ****

  其中还有一步就是截获回车和ESC键对对话框的退出工作.

  BOOL CShowAboutDlg::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
if(pMsg->message == WM_KEYDOWN)
{
switch(pMsg->wParam)
{
case VK_RETURN:
return TRUE;
case VK_ESCAPE:
return TRUE;
}
}
return CDialog::PreTranslateMessage(pMsg);
}

  至此,程序基本工作已经完成了,编译运行你的工程看看效果吧.

责编:豆豆技术应用

正在加载评论...