QQ登录

只需一步,快速开始

42上位机VC MFC实现字形的不规异形窗口

[ 复制链接 ]

42上位机VC MFC实现字形的不规异形窗口

42上位机VC MFC实现字形的不规异形窗口

42上位机VC MFC实现字形的不规异形窗口


功能展示

在我们开发的上位机程序功能过多时,启动可能要等待一段时间,或我们程序界面显示前,设备要进行回原点操作,这样在一定程序上会给用户感觉程序没有运行起来。如果我们给程序添加一启动界面便可消除这种错觉,我们这里创建一个只显示文件的窗口界面,效果如图。

要点提示
在设计字型窗口可以利用设备上下文CDC类的通道方法来实现,包括BeginPath() TextOut() EndPath()SetBkMode(); BeginPath() EndPath() 用于打开和关闭设备上下文路径,必需配套使用; TextOut() 输出我们要显示的文字;

最后我们用函数PathToRegion()将路径转换为区域, 用SetWindowRgn()函数将转换后的区域设置我们的窗口区域
实现功能
1.新建基于对话框的应用程序

2.自定义添加一个实现窗口字型的函数
  1. void CGkbc8Dlg::ShapeShift(CString str)
  2. {
  3.         CFont font;
  4.         CDC *pDC = GetDC();
  5.         font.CreatePointFont(900,"宋体",pDC);
  6.         pDC->SelectObject(&font);
  7.         pDC->BeginPath();
  8.         pDC->SetBkMode(TRANSPARENT);
  9.         pDC->TextOut(18,18,str);
  10.         pDC->EndPath();
  11.         
  12.         HRGN hrgn;
  13.         hrgn = PathToRegion(pDC->m_hDC);
  14.         SetWindowRgn(hrgn,TRUE);
  15.         font.DeleteObject();
  16. }
复制代码
m_sText为手动添加的变量CString m_sText;

3.静止的字形窗口效果我们只要在对话框OnInitDialog()中调用一次便可,如要动态的字型窗口我们可以通用定时器来时现
  1. void CGkbc8Dlg::OnTimer(UINT nIDEvent)
  2. {
  3.         if(1 == nIDEvent)
  4.         {
  5.                 m_sText += ".";
  6.                 if(m_sText.GetLength() >= 14)
  7.                         m_sText="正在回原点";
  8.                 ShapeShift(m_sText);
  9.         }
  10.         CDialog::OnTimer(nIDEvent);
  11. }
复制代码
我们来演示下功能实现的整个过程
源码及视频下载
(仅在电脑可见)
请点击此处下载

请先注册会员后在进行下载

已注册会员,请先登录后下载

文件名称:42.上位机VC MFC实现字形的不规异形窗口.rar 
文件大小:117.05 KB  售价:20金币
下载权限: 不限 以上或 VIP会员   [购买捐助会员]   [充值积分]   有问题联系我


  

您的支持是我们创作的动力!  

  

您可花点闲钱积分自助任意充值

  

成为VIP会员 全站资源任意下载永久更新!

回复

使用道具 举报

点击查看
快速回复 返回列表 客服中心 搜索