VS2010中新控件的编程------字体、链接、浏览等空间的编程

字体、链接、浏览等空间的编程

1)    字体列表

在资源中加入Combox控件,并将属性设置为dropList,将OwnerDraw属性设置为Fixed,将has strings属性设置为TRUE。利用ClassWizard为该控件设置CMFCFontComboBox变量,利用该类的成员函数进行属性设置和变量。

       m_FontCombox.SelectFont(_T("Arial"));

利用Combox控件的改变消息获取当前选择的字体

         CMFCFontInfo*pFontInfo = m_FontCombox.GetSelFont();

         if(pFontInfo != NULL)

         {

                   m_CurFontName=  pFontInfo->m_strName;

                   m_CurFontCharSet= pFontInfo->m_nCharSet;

         }

改变属性并设置

         UpdateData();

         int nFontType = 0;

         if(m_Device)

         {

                   nFontType|= DEVICE_FONTTYPE;

         }

         if(m_Raster)

         {

                   nFontType|= RASTER_FONTTYPE;

         }

         if(m_TrueType)

         {

                   nFontType|= TRUETYPE_FONTTYPE;

         }

         m_FontCombox.Setup(nFontType);

         m_FontCombox.SelectFont(m_CurFontName,m_CurFontCharSet);

利用字体直接在列表框中进行绘制,只需要改变CMFCFontComboBox的m_bDrawUsingFont属性即可。

         UpdateData( );

         m_FontCombox.m_bDrawUsingFont= m_DrawUsing;

         m_FontCombox.RedrawWindow();

2)    位图编辑

VS2010提供了位图编辑功能,能够弹出对话框进行位图的编辑,首先在对话框中添加位图编辑区域为Picture型控件,获得区域并绘制位图。

m_ImageArea.GetClientRect(&m_ImageRect);

m_ImageArea.MapWindowPoints(this,&m_ImageRect);

m_BmpTest.LoadBitmap(IDB_TEST_BMP);

BITMAP bm;

m_BmpTest.GetBitmap(&bm);

m_ImageRect.right = m_ImageRect.left +bm.bmWidth;

m_ImageRect.bottom = m_ImageRect.top +bm.bmHeight;

    添加按钮并定义为CMFCButton型,并为该按钮添加图标

         m_EditBut.SetImage(IDB_IMAGE);

         m_EditBut.SetTextHotColor(RGB(0,0,255));

    在按钮按下消息中调用位图编辑对话框,并获取已经编辑的位图并显示。

HBITMAPm_hBmp = (HBITMAP)::CopyImage(m_BmpTest.GetSafeHandle(),IMAGE_BITMAP,0,0,0);

         if(m_hBmp)

         {

          CMFCImageEditorDialog m_EditImageDlg(CBitmap::FromHandle(m_hBmp),this);

          If(m_EditImageDlg.DoModal()== IDOK)

          {

                   m_BmpTest.DeleteObject();

                   m_BmpTest.Attach(m_hBmp);

                   InvalidateRect(m_ImageRect);

          }

         }

在对话框的onPaint()中增加绘图刷新代码,在退出位图编辑对话框时刷新

         CRectrectFrame = m_ImageRect;

         rectFrame.InflateRect(1,1);

         dc.Draw3dRect(rectFrame,GetSysColor(COLOR_3DLIGHT), GetSysColor(COLOR_3DSHADOW));

         rectFrame.InflateRect(1,1);

         dc.Draw3dRect(rectFrame,GetSysColor(COLOR_3DHILIGHT), GetSysColor(COLOR_3DDKSHADOW));

         dc.DrawState(m_ImageRect.TopLeft(),m_ImageRect.Size(),&m_BmpTest,0);

3)    链接按钮

在资源中增加按钮控件,并定义为CMFCLinkCtrl型,并完成初始化代码

m_LinkBut.SetURL(_T("http:\\www.hao123.com"));

m_LinkBut.SetTooltip(_T("¨°Ì?¡Â°3"));

4)    CVSListCtrl控件

在资源中增加CStatic控件,建立变量,并定义为CVSListBox类型,并进行初始化

m_ListBox.SetStandardButtons();

         m_ListBox.EnableBrowseButton();

         m_ListBox.AddItem(_T("Test Item1"));

         m_ListBox.AddItem(_T("Test Item2"));

5)    EditBrowse控件

在资源中增加EDIT控件,建立变量,并定义为以CMFCEditBrowseCtrl为基类的CMyBrowseEdit类型,并进行初始化

         m_FolderList.EnableFolderBrowseButton();

         m_FileListCtrl.EnableFileBrowseButton();

为了控制Edit中的显示内容,需要对OnBrowse函数进行重载,如本例中,文件浏览只显示文件名,而不显示文件目录名,文件夹浏览只显示目录名,而不显示前面的文件目录系统。

         virtual voidOnBrowse()

         {

                   CStringm_str;

                   int len,i;

                   CMFCEditBrowseCtrl::OnBrowse();

                   GetWindowText(m_str);

                   len= m_str.GetLength();

                   for(i=len-1;i>=0;i--)

                   {

                            if(m_str[i] =='\\')

                                     break;

                   }

                   m_str= m_str.Right(len-i-1);

                   SetWindowText(m_str);

         }

最终软件运行界面:


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ECharts-GL是Apache ECharts(正在孵化)的扩展包,它提供3D绘图,地球仪可视化和WebGL加速。 特色: 1、混搭 ECharts 里的混搭功能很强大,作为 ECharts 的扩展,ECharts-X 自然也需要支持。ECharts-X 能跟 ECharts 中的折柱饼地图等图表混搭,可以有更丰富的可视化效果,同时 ECharts-X 也能够直接使用 ECharts 中的 legend, dataRange 等组件。 2、3D大规模标注 ECharts-X 中的标注在效果和使用上都跟 ECharts 中的标注(markPoint)类似,但是由于WebGL的强大能力,对于几万甚至几十万的markPoint也能进行实时的动画和交互 标柱(markBar)是 ECharts-X 中新定义的一个概念,它是标注(markPoint)的衍生,在三维空间扩展了高度维度表达更丰富的数据信息。 3、3D大规模标线 同样 ECharts-X 中的标线在使用上和 ECharts 类似,但是展现效果从 2D 变成 3D 的曲线,支持几万条 markLine 的实时展现,动画以及交互。 4、风场,洋流等向量场的可视化 NASA之前发布过全球洋流图,用梵高风格的表现使得可视化也充满了艺术感,ECharts-X 也提供了对洋流,风场这种向量场可视化的便捷配置。同样的,也是实时的展现和交互。 5、自定义底图 这个功能比较简单但是非常实用,能够配置地球的底图纹理图片,使得展现更有质感,以后也会在 ECharts 的 map 中加入。下面截图是将地图换成木星纹理的效果。
ACM-ICPC(国际大学生程序设计竞赛)是一项面向大学生的计算机编程竞赛,涉及算法和数据结构等领域。在比赛中,选手需要解决一系列编程问题,使用合适的算法和数据结构来实现正确和高效的解决方案。 对于整理ACM-ICPC模板,以下是一些建议: 1. 了解比赛要求:首先,你需要了解ACM-ICPC比赛的具体要求和规则。这包括了解比赛所涉及的算法和数据结构,以及题目的类型和难度等。 2. 收集资料:收集与ACM-ICPC相关的资料,包括经典算法和数据结构的实现代码、常见问题的解题思路等。可以参考教材、博客、论文等资源。 3. 整理模板:将收集到的资料整理成模板。可以按照算法和数据结构的分类进行整理,例如排序算法、图算法、字符串算法等。对每个模板,添加必要的注释和示例代码,以便理解和使用。 4. 测试代码:对每个模板编写测试代码,确保它们的正确性和可靠性。可以使用已知的测试用例或自行设计测试用例。 5. 更新与扩充:定期更新和扩充模板,以适应ACM-ICPC比赛中新出现的算法和数据结构。同时,根据自己的经验和理解,对模板进行优化和改进。 6. 练习和复习:在比赛之前,利用整理好的模板进行练习和复习。尝试解决一些经典问题,使用模板中的算法和数据结构进行实现,并进行优化。 希望这些建议对你整理ACM-ICPC模板有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值