WEB开发网
开发学院软件开发VC VC精华教程:MFC入门系列(六) 阅读

VC精华教程:MFC入门系列(六)

 2007-03-22 21:31:18 来源:WEB开发网   
核心提示:在大家的帮助之下,我的文章上了文章的排行榜,VC精华教程:MFC入门系列(六),谢谢大家! 我们今天讲一下图形设备接口(以下简称GDI),一个技术或语言的产生都有它的背景和原因,在OnCreateClient中,用下列代码修改原有的工具条代码//工具条创建UINTtool[]= {0,ID_DISPLAY_DOWN,I

在大家的帮助之下,我的文章上了文章的排行榜,谢谢大家!

我们今天讲一下图形设备接口(以下简称GDI),一个技术或语言的产生都有它的背景和原因。GDI是Windows提供的一套函数和结构,以便于我们调用它们来绘图。为什么要提供这样一个接口呢?

因为我们有不同的输出设备,各种显示器,各种打印机,他们有不同的打印驱动程序,也就是说,我们要针对不同的设备编程,要调用不同的设备驱动程序吗?那么,我的显示器换了,是不是我们的程序就要更换呢?我们并没有这样的麻烦,为什么呢?GDI提供这样一个平台,屏蔽了他们的差异。感觉就像Windows操作系统屏蔽了硬件,Java虚拟机屏蔽平台一样。我们使用的GDI全部使用设备上下文(DC)作为显示设备的信息来源。因此,我们无需关心设备的特性。

在图形绘制当中,提供了一个叫做设备上下文(DC)的结构,是一个GDI提供的接口供我们来访问设备,所有的绘图都是通过设备上下文来进行。

因此,同一应用程序可以在配有不同的类型显示器的计算机上使用。应用程序不需要针对所有显示器进行更改。

为了后面的画图型准备,我们先添加一个菜单

五个菜单的资源ID分别为ID_DRAW_LINE和ID_DRAW_RECT,

ID_DRAW_ROUND_RECT和ID_DRAW_CIRCLE和ID_DRAW_CURVE。

添加好菜单,我们还要修改一下工具条,在OnCreateClient中,用下列代码修改原有的工具条代码

  //工具条创建
UINTtool[]= {0,ID_DISPLAY_DOWN,ID_DISPLAY_UP,ID_DISPLAY_RIGHT,
ID_DISPLAY_LEFT,0,ID_DRAW_LINE,ID_DRAW_RECT,
ID_DRAW_ROUND_RECT,ID_DRAW_CIRCLE,ID_DRAW_CURVE};
//创建扩展风格的工具条
t.CreateEx(this,TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP
| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC);
  //工具条加载图片
  t.LoadBitmap(IDB_BITMAP1);
  //设置按钮
  t.SetButtons(tool,11);
  //工具条可以停靠在任何位置
  t.EnableDocking(CBRS_ALIGN_ANY);
  //框架接受任意停靠位置
    EnableDocking(CBRS_ALIGN_ANY);
  //执行停靠工具条
  DockControlBar(&t,AFX_IDW_DOCKBAR_TOP);

在前面的基础之上,我们有添加了五个工具条按钮。再在消息映射中添加如下代码

1 2 3  下一页

Tags:VC 精华 教程

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接