当前位置: 首页 > news >正文

贵州能源网站 中企动力建设代做网页制作网站

贵州能源网站 中企动力建设,代做网页制作网站,wordpress电话,九江建设网站公司显示系统时间 1、 在状态栏中设置两个新的栏位Timer和Progress。首先到ResourceView中编辑String Table#xff0c;增加IDS_TIMER(时间),PROGRESS(进度)。然后在MainFrame中修改indicators数组#xff0c;插入IDS_TIMER和IDS_PROGRESS。插入的位置#xff0c;即为显示的位置… 显示系统时间 1、 在状态栏中设置两个新的栏位Timer和Progress。首先到ResourceView中编辑String Table增加IDS_TIMER(时间),PROGRESS(进度)。然后在MainFrame中修改indicators数组插入IDS_TIMER和IDS_PROGRESS。插入的位置即为显示的位置。添加字符串必须将字符串说明也写上不然无法新建在CMainFrame中添加CProgressCtrl m_Progress; 2、 现在我们让状态栏上的IDS_TIMER的位置显示系统当前的时间。我们只要在MainFrame的OnCreate函数中写入 CTimetCTime::GetCurrentTime();          //获得当前的系统时间 CClientDC dc(this); CSizeszdc.GetTextExtent(str);              //设置一个CClientDC对象来获取str的长度 CStringstrt.Format(%H:%M:%S);       //格式可以参考MSDN中的strftime函数  int index0;  indexm_wndStatusBar.CommandToIndex(IDS_TIMER);      //此处也可以直接输入IDS_TIMER在indicators数组中从0开始的序号。 //设置状态栏宽度 m_wndStatusBar.SetPaneInfo(index,IDS_TIMER,SBPS_NORMAL,sz.cx);      m_wndStatusBar.SetPaneText(index,str);            //设置IDS_TIMER指示器字符串 3、 在OnCreate函数中添加SetTimer1,1000,NULL;语句让后为CMainFrame类添加WM_TIMER消息相应函数在OnTimer函数中将上述代码复制进去就可以实现随时变化时间的状态栏。  添加进度条 1、 现在我们将状态栏中的PROGRESS栏位显示一个50%的进度栏。如果我们只是简单的在MainFrame的OnCreate函数中写入以下代码 CRect rect; /*获取IDS_PROGRESS栏位的CRect值付给rect*/  m_wndStatusBar.GetItemRect(m_wndStatusBar.CommandToIndex(IDS_PROGRESS),rect);    /*在IDS_PROGRESS的位置显示一个50%的进度栏*/  m_progress.Create(WS_CHILD|WS_VISIBLE,rect,m_wndStatusBar,123);     m_progress.SetPos(50); 2、 你会发现IDS_PROGRESS栏位仍然显示的是“进度”两个字。这是为什么呢原因是因为在OnCreate函数中窗台和状态栏并没有真正创建完毕所以GetItemRect函数无法获取IDS_PROGRESS栏位的CRect值。解决的办法是添加一个自定义的消息把消息放入消息队列等窗体和状态栏创建完毕后再通过消息响应创建进度栏。 添加自定义消息 1、 在MainFrame头文件中添加自定义消息 #define WM_PROGRESS WM_USER1 2、 然后在头文件中添加消息响应函数 afx_msg LRESULT OnProgress(WPARAMwParam,LPARAM lParam); 在cpp文件中添加消息映射 ON_MESSAGE(WM_PROGRESS,CMainFrame::OnProgress) 3、 写消息响应函数 void CMainFrame::OnProgress() {    CRect rect;    m_wndStatusBar.GetItemRect(m_wndStatusBar.CommandToIndex(IDS_PROGRESS),rect);    if(m_Progress.GetSafeHwnd() nullptr) m_Progress.Create(WS_CHILD|WS_VISIBLE,rect, m_wndStatusBar, 123); else m_Progress.ShowWindow(SW_SHOW); m_progress.SetPos(50); } 4、 去掉上一个步骤在OnCreate中添加的语句。 然后在OnCreate函数最后添加如下语句 PostMessage(WM_PROGRESS); 注意这里要用PostMessage不能用SendMessage否则系统会先处理OnProgress消息响应然后再创建窗体出现仍看不见进度栏的情况。必须用PostMessage先把消息放入消息响应队列当中等窗体创建完毕后系统再处理OnProgress函数。 5、 这时就可以看见进度跳了但是还有个问题当窗口大小改变时进度条会离开IDS_PROGRESS状态栏的位置。可以使用下面的方法解决。 状态栏随窗口改变大小 1、 为MainFrame添加WM_SIZE消息相应函数并添加如下代码 void CMainFrame::OnSize(UINT nType,int cx, int cy) { CFrameWndEx::OnSize(nType, cx, cy); // TODO: 在此添加消息处理程序代码 if(m_wndStatusBar.GetSafeHwnd() ! nullptr) { CRectrect; m_wndStatusBar.GetItemRect(1,rect); if(m_Progress.GetSafeHwnd() ! nullptr) { m_Progress.SetWindowPos(wndTop,rect.left, rect.top, rect.right- rect.left, rect.bottom - rect.top, 0); } } } 显示鼠标位置 1.      现在我们要让状态栏上显示鼠标在窗口中的坐标。由于View窗体在MainFrame框架前所以我们要响应的是View窗体上OnMouseMove事件。 2.      首先我们在View类中右键新建一个window消息响应函数添加一个WM_MOUSEMOVE的消息响应函数。添加如下代码 CStringstr;        str.Format(_T(x%d,y%d),point.x,point.y);                    /*对鼠标坐标进行格式化*/      ((CMainFrame*)GetParent())-m_wndStatusBar.SetWindowText(str);       /*由于作用的是View窗口的父窗口MainFrame下的m_wndStatusBar对象所以必须将m_wndStatusBar设置为public然后用(CMainFrame*)指名其为框架类指针否则-后面不会出现m_wndStatusBar对象。注意在View程序中必须包含MainFrame的头文件*/ 也可以将最有一句改为 ((CMainFrame*)GetParent())-SetMessageText(str);直接由框架类函数中的SetMessageText实现对状态栏文字的更改。 3.      第三种实现方法是 ((CMainFrame*)GetParent())-GetMessageBar()-SetWindowText(str);通过框架类函数GetMessageBar来获得指向状态栏窗口的指针。这种方法的好处是不需要再把MainFrame中的m_wndStatusBar设置为public。 4.      第四种方法 GetParent()-GetDescendantWindow(AFX_IDW_STATUS_BAR)-SetWindowText(str); 因为GetDescendantWindow本来就是CWnd的成员函数所以不需要转换为框架类对象并根据ID号来获得子孙窗口的对象指针这里的AFX_IDW_STATUS_BAR是由CStatusBar::Create默认产生的。
http://www.pierceye.com/news/2390/

相关文章:

  • 购物网站创建钢筋网片150x150一个平方多少吨
  • 网站建设教程皆赞湖南岚鸿完成seo在网站制作
  • 网站域名跟谁买c 网站开发工程师招聘
  • 淄博建站哪家好wap网站制作怎么做
  • 建设个网站广州江阴网站建设培训
  • 微网站自己怎么做4399网页版入口
  • 用dw可以做网站吗怎样与其它网站做友情链接
  • 建购物网站怎么建呀百度网盘登录
  • 网站建设公司广州wordpress调用阅读最多的
  • 南山专业做网站公司备案网站名称 怎么填写
  • 建筑工程类招聘网站哈尔滨网站建设团队
  • 长沙专业外贸建站公司网站建设最新技术及发展趋势
  • 网站一天要发多少外链婚纱摄影网页模板
  • 网站说服力-营销型网站策划积分动力wordpress插件
  • 湖南网站建设公司 要上磐石网络网站建设只有一个空间吗
  • 支付宝 收费 网站开发连云港建设部网站
  • 蚌埠公司做网站wordpress装饰
  • 科技部网站建设合同企业做网站需要什么手续吗
  • 做个简单的网站如何查看网站域名
  • 晋中做网站的公司广东队对阵广州队
  • 郑州经济技术开发区属于哪个区优化方案模板
  • 如何从建设局网站上更换职称人员网站收录排名
  • 蚌埠网站设计wordpress说有图片居中对齐
  • seo站内优化站外优化制造业网站开发
  • 做效果图的网站有哪些饲料网站建设 中企动力
  • 网站建设公司薪酬跨境电商怎么做如何从零开始
  • 网站定制页面调整至居中广告设计图片大全模板
  • 广东网站设计专业团队深圳网站 建设信科网络
  • 儿童教育网站怎么做有趣oa办公系统网页版官网
  • 广州智能建站有没有免费查企业信息的软件