QQ登录

只需一步,快速开始

仿VC6界面悬浮停靠缩放效果--上位机VC

[ 复制链接 ]

仿VC6界面悬浮停靠缩放效果--上位机VC

仿VC6界面悬浮停靠缩放效果--上位机VC

仿VC6界面悬浮停靠缩放效果--上位机VC
功能展示
VC6有两个常用工作窗口,工作窗口与输出窗口可以悬浮停靠及窗口缩放效果,当前例程也实现这一功能,效果如图。例程是基于单文档框架程序,程序运行会显示两个可以停靠的窗口,初始化停靠在左边与下边,可以对这两窗口进行悬浮停靠及窗口缩放操作
要点提示
例程集成一类CDockPageBar用于窗口悬浮等效果,在使用时定义一个实例CDockPageBar  m_CourceBar;此变量初始化后就可调用AddPage()将一个现成的对话框添加进去,让对话框显示在悬浮窗口上;要注意的是对话框得具有动态创建的属性也就是得在对话框类的头文件添加指令DECLARE_DYNCREATE,源文件添加指令IMPLEMENT_DYNCREATE,另外也将对话框设置为子窗口及无边框;
实现功能
1.新建基于单文档应用程序,视窗类可选择基于CFormView;
2.将例程根目录sizebar.cpp, sizebar.h,DockPageBar.h, DockPageBar.cpp AutoHideBar.h, AutoHideBar.cpp复制到自己工程根目录并载入到工程中;
3.在框架类头文件包含#include “AutoHideBar.h”,添加两个实例变量  CDockPageBar  m_CourceBar;
  CDockPageBar    m_OutputBar;并使之继承于CAutoHideFrame, class CMainFrame : public CAutoHideFrame,源文件中指定IMPLEMENT_DYNCREATE改成IMPLEMENT_DYNCREATE(CMainFrame,CAutoHideFrame), BEGIN_MESSAGE_MAP改成BEGIN_MESSAGE_MAP(CMainFrame, CAutoHideFrame)
4.准备两个对话框用于添加到前面的悬浮窗口上显示,如例程COutputDlg, CCourceDlg两对话框,使用对话框具有动态创建功能,既在头文件与源文件分别添加DECLARE_DYNCREATE, IMPLEMENT_DYNCREATE指令,对话框具体额外的功能,可自行添加

5.在框架窗口类中包含新建对话框类的头文件,并在OnCreate()中创建
  1. int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
  2. {
  3.         if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
  4.                 return -1;

  5.         if (!m_wndStatusBar.Create(this) ||
  6.                 !m_wndStatusBar.SetIndicators(indicators,
  7.                   sizeof(indicators)/sizeof(UINT)))
  8.         {
  9.                 TRACE0("Failed to create status bar\n");
  10.                 return -1;      // fail to create
  11.         }
  12. //<>
  13.         if (!m_CourceBar.Create(_T("课程目录窗口"), this, CSize(230,260),TRUE,32767))
  14.         {
  15.                 TRACE0("Failed to create DockPageBar.\n");
  16.                         return -1;
  17.        
复制代码
  1. }
  2.         m_CourceBar.SetBarStyle(m_CourceBar.GetBarStyle() | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC);
  3.         m_CourceBar.EnableDocking (CBRS_ALIGN_ANY);
  4.         if (!m_OutputBar.Create(_T("输出窗口"), this, CSize(230,160),TRUE,32768))
  5.         {
  6.                 TRACE0("Failed to create OutputBar.\n");
  7.                         return -1;
  8.         }
  9.         m_OutputBar.SetBarStyle(m_OutputBar.GetBarStyle() | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC);
  10.         m_OutputBar.EnableDocking (CBRS_ALIGN_ANY);

  11. //<>
  12.         EnableDocking(CBRS_ALIGN_ANY);
  13.         DockControlBar(&m_CourceBar, AFX_IDW_DOCKBAR_LEFT);
  14.         DockControlBar(&m_OutputBar, AFX_IDW_DOCKBAR_BOTTOM);
  15. //<>添加子页
  16.         m_CourceBar.AddPage(RUNTIME_CLASS(CCourceDlg), IDD_COURCE_DLG, "课程目录", IDR_GKBC8TYPE);
  17.         m_OutputBar.AddPage(RUNTIME_CLASS(COutputDlg), IDD_OUTPUT_DLG, "结果输出", IDR_MAINFRAME);       
  18. //<> 另一方法添加子页
  19.         if (!m_wndTree.Create(WS_CHILD|WS_VISIBLE| TVS_HASLINES|TVS_HASBUTTONS|TVS_LINESATROOT, CRect(0, 0, 0, 0), this, 100))
  20.         {
  21.                 TRACE0("Failed to create instant bar child\n");
  22.                 return -1;
  23.         }
  24.         HTREEITEM hti = m_wndTree.InsertItem(_T("工控编程课程"));
  25.         m_wndTree.InsertItem(_T("欧姆龙PLC编程"), hti);
  26.         m_wndTree.InsertItem(_T("三菱PLC编程"), hti);
  27.         m_wndTree.InsertItem(_T("维纶触摸屏编程"), hti);
  28.         m_wndTree.InsertItem(_T("上位机编程"), hti);
  29.         m_wndTree.InsertItem(_T("变频器调试与控制"), hti);
  30.         m_wndTree.InsertItem(_T("伺服定位编程"), hti);
  31.         m_wndTree.InsertItem(_T("CCD视觉定位"), hti);
  32.         m_CourceBar.AddPage(&m_wndTree,"工控编程",IDR_MAINFRAME);
  33.         return 0;
  34. }
复制代码
请点击此处下载

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

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

文件名称:仿VC6界面悬浮停靠缩放效果--上位机VC.rar 
文件大小:86.92 KB  售价:10金币
下载权限: 不限 以上或 VIP会员   [购买捐助会员]   [充值积分]   有问题联系我

  

如果您认可,可联系功能定制!

  

如果您着急,充值会员可直接联系发您资料!

  

QQ联系我

微信扫扫联系我

  


回复

使用道具 举报

快速回复 返回列表 客服中心 搜索