`
- 浏览:
64209 次
-
通过hdc指针获取cdc指针
创建一个基于对话框的应用程序。
为改对话框创建一个按钮。
为改按钮添加一个单击事件消息响应函数,如下:
void CDemo9Dlg::OnButton1()
{
// TODO: Add your control notification handler code here
//获取当前dc的句柄
HDC hdc=::GetDC(m_hWnd);
//通过hdc指针获取cdc指针
CDC* pdc=CDC::FromHandle(hdc);
//输出文本
pdc->SetBkMode(TRANSPARENT);
pdc->SetTextAlign(TA_CENTER);
CRect rect;
GetClientRect(rect);
pdc->TextOut(rect.Width()/2,rect.Height()/2,_T("Hello World!"));
}
HDC hdc;//HDC是设备描述标句柄//获取DC句柄
hdc=::GetDC(m_hWnd);//::表示要引用全局函数GetDC//获取View窗口句柄//m_hWnd就是当前view窗口句柄//m_hwnd是一个成员变量,好象是定存放的是类的实例的句柄//::为了区分CWnd中的成员函数GetDC()函数
MoveToEx(hdc,m_ptOrigin.x,m_ptOrigin.y,NULL);//NULL表示不需要返回值//在hdc为句柄的设备中,把点移动到m_ptOrigin.x,m_ptOrigin.y
LineTo(hdc,point.x,point.y);//在hdc为句柄的设备中,把(m_ptOrigin.x,m_ptOrigin.y)连接到点(point.x,point.y),从而构成线
::ReleaseDC(m_hWnd,hdc);//释放View窗口句柄m_hWnd的hdc设备句柄
====================================================
CDC *pDC=GetDC();//MFC提供了关于DC的封装了一个类//所有关于作图的类为CDC//获取CDC对象指针的函数为GetDC()//此GetDC()是属于CWnd类的
pDC->MoveTo(m_ptOrigin);//此处以Point结构体为函数参数
pDC->LineTo(point);
ReleaseDC(pDC); //ReleaseDC此处是CWnd的成员函数,不同于全局函数::ReleaseDC
====================================================
CClientDC dc(this);//CClientDC是CDC派生的类.//其特点是不需要GetDC()与ReleaseDC()这两个函数//C++中this指针指向类自己本身
//CClientDC dc(GetParent());//View类的父类即Frame框架类//画图可以画到工具栏但是画不到菜单栏
dc.MoveTo(m_ptOrigin);
dc.LineTo(point);
====================================================
CWindowDC dc(this);//其是CDC另一个派生类不需要GetDC()与ReleaseDC()//优点可以访问整个屏幕区域
//CWindowDC dc(GetParent());//可以画到标题栏和菜单栏,比CClient好//客户区和非客户区都可以画到
//CWindowDC dc(GetDesktopWindow());//可以画到整体屏幕上,包括桌面
dc.MoveTo(m_ptOrigin);
dc.LineTo(point);
====================================================
====================================================
CPen pen(PS_DOT,1,RGB(0,255,0));//创建红色实线宽为1的画笔
CClientDC dc(this);//表示开始启动设备
CPen *pOldPen=dc.SelectObject(&pen);//为设备选取该画笔,并且保存该画笔到*pOldPen
dc.MoveTo(m_ptOrigin);
dc.LineTo(point);
dc.SelectObject(pOldPen);//把先前的画笔选择回设备
====================================================
CBrush brush(RGB(255,0,0));//定义一个红色的刷子//画刷主要是为区域填充
CBitmap bitmap;//定义一个图片变量
bitmap.LoadBitmap(IDB_BITMAP1);//为图片变量加载某图片
CBrush brush(&bitmap);//用该图片作为刷子
CClientDC dc(this);//得到当前输出设备
dc.FillRect(CRect(m_ptOrigin,point),&brush);//对该输出设备填充一个矩形筐//其中矩形由两点决定//用刷子来填充
CBrush *pBrush=CBrush::FromHandle((HBRUSH)GetStockObject(NULL_BRUSH));
CBrush *pOldBrush=dc.SelectObject(pBrush);
dc.Rectangle(CRect(m_ptOrigin,point));
dc.SelectObject(pOldBrush);//为该输出设备选定一个刷子
通过hdc指针获取cdc指针
创建一个基于对话框的应用程序。
为改对话框创建一个按钮。
为改按钮添加一个单击事件消息响应函数,如下:
void CDemo9Dlg::OnButton1()
{
// TODO: Add your control notification handler code here
//获取当前dc的句柄
HDC hdc=::GetDC(m_hWnd);
//通过hdc指针获取cdc指针
CDC* pdc=CDC::FromHandle(hdc);
//输出文本
pdc->SetBkMode(TRANSPARENT);
pdc->SetTextAlign(TA_CENTER);
CRect rect;
GetClientRect(rect);
pdc->TextOut(rect.Width()/2,rect.Height()/2,_T("Hello World!"));
}
HDC hdc;//HDC是设备描述标句柄//获取DC句柄
hdc=::GetDC(m_hWnd);//::表示要引用全局函数GetDC//获取View窗口句柄//m_hWnd就是当前view窗口句柄//m_hwnd是一个成员变量,好象是定存放的是类的实例的句柄//::为了区分CWnd中的成员函数GetDC()函数
MoveToEx(hdc,m_ptOrigin.x,m_ptOrigin.y,NULL);//NULL表示不需要返回值//在hdc为句柄的设备中,把点移动到m_ptOrigin.x,m_ptOrigin.y
LineTo(hdc,point.x,point.y);//在hdc为句柄的设备中,把(m_ptOrigin.x,m_ptOrigin.y)连接到点(point.x,point.y),从而构成线
::ReleaseDC(m_hWnd,hdc);//释放View窗口句柄m_hWnd的hdc设备句柄
====================================================
CDC *pDC=GetDC();//MFC提供了关于DC的封装了一个类//所有关于作图的类为CDC//获取CDC对象指针的函数为GetDC()//此GetDC()是属于CWnd类的
pDC->MoveTo(m_ptOrigin);//此处以Point结构体为函数参数
pDC->LineTo(point);
ReleaseDC(pDC); //ReleaseDC此处是CWnd的成员函数,不同于全局函数::ReleaseDC
====================================================
CClientDC dc(this);//CClientDC是CDC派生的类.//其特点是不需要GetDC()与ReleaseDC()这两个函数//C++中this指针指向类自己本身
//CClientDC dc(GetParent());//View类的父类即Frame框架类//画图可以画到工具栏但是画不到菜单栏
dc.MoveTo(m_ptOrigin);
dc.LineTo(point);
====================================================
CWindowDC dc(this);//其是CDC另一个派生类不需要GetDC()与ReleaseDC()//优点可以访问整个屏幕区域
//CWindowDC dc(GetParent());//可以画到标题栏和菜单栏,比CClient好//客户区和非客户区都可以画到
//CWindowDC dc(GetDesktopWindow());//可以画到整体屏幕上,包括桌面
dc.MoveTo(m_ptOrigin);
dc.LineTo(point);
====================================================
====================================================
CPen pen(PS_DOT,1,RGB(0,255,0));//创建红色实线宽为1的画笔
CClientDC dc(this);//表示开始启动设备
CPen *pOldPen=dc.SelectObject(&pen);//为设备选取该画笔,并且保存该画笔到*pOldPen
dc.MoveTo(m_ptOrigin);
dc.LineTo(point);
dc.SelectObject(pOldPen);//把先前的画笔选择回设备
====================================================
CBrush brush(RGB(255,0,0));//定义一个红色的刷子//画刷主要是为区域填充
CBitmap bitmap;//定义一个图片变量
bitmap.LoadBitmap(IDB_BITMAP1);//为图片变量加载某图片
CBrush brush(&bitmap);//用该图片作为刷子
CClientDC dc(this);//得到当前输出设备
dc.FillRect(CRect(m_ptOrigin,point),&brush);//对该输出设备填充一个矩形筐//其中矩形由两点决定//用刷子来填充
CBrush *pBrush=CBrush::FromHandle((HBRUSH)GetStockObject(NULL_BRUSH));
CBrush *pOldBrush=dc.SelectObject(pBrush);
dc.Rectangle(CRect(m_ptOrigin,point));
dc.SelectObject(pOldBrush);//为该输出设备选定一个刷子
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
在IT领域,尤其是软件开发与编程技术中,"VC笔记,随身记,随时记"这一标题透露出一种持续学习和记录的习惯,这对于任何技术从业者来说都是至关重要的。标题中的“VC”通常指的是Visual C++,这是一种广泛使用的编程...
描述中提到的“VC9_x86、VC9_x64、VC11_x86、VC11_x64、VC11_arm、VC14_x86、VC14_x64、VC15_x86、VC15_x64”分别代表了这些编译器的不同平台支持,包括32位(x86)和64位(x64)系统,以及针对ARM架构的VC11版本。...
《易语言VC6Linker至VC2010Linker:深入解析与应用》 易语言,作为一款国人自主研发的编程语言,以其独特的中文编程界面和语法,降低了编程的入门门槛,深受广大程序员喜爱。在易语言的生态系统中,链接器(Linker...
【VC9, VC11, VC14 运行库详解】 VC9, VC11, 和 VC14 是微软Visual C++的不同版本,这些版本的编译器生成的程序通常依赖于相应的运行时库(Runtime Library)。这些运行库包含了执行C++程序所需的基本组件和服务,...
**VC9、VC11、VC14 32位运行库详解** 在Windows操作系统上,许多基于C++编译的程序需要特定版本的Visual C++ Redistributable Packages才能正常运行,这些运行库包含了运行程序所需的动态链接库(DLL)文件。在本篇...
接下来,随着微软的更新,我们有VC7.0(即VC++ .NET 2002)、VC7.1(VC++ .NET 2003)、VC8.0(VC++ 2005)、VC9.0(VC++ 2008)、VC10.0(VC++ 2010)、VC11.0(VC++ 2012)、VC12.0(VC++ 2013)、VC14.0(VC++ ...
大多数版本的PHP使用VC9, VC11 or VC14 (Visual Studio 2008, 2012 or 2015分别编译)进行编译的,所以你电脑上需要安装VC运行环境。 由于还是有少部份人在Apache+PHP低版本的是时候,需要用上VC9(Visual C++ 2008)...
标题中的"vc9、vc10,vc11、vc12,vc13,vc14"指的是Microsoft Visual C++的不同版本。这些版本的编译器被广泛用于开发使用C++语言的应用程序,尤其是那些依赖于Microsoft Windows API的程序。它们提供了运行时库,...
VC运行库是微软Visual C++开发环境的一部分,用于支持C++编译的程序在没有完整Visual Studio安装的计算机上运行。这些运行库包含了C++标准库、MFC(Microsoft Foundation Classes)、ATL(Active Template Library)...
在IT行业中,Visual C++(简称VC)是微软公司开发的一款强大的C++集成开发环境。在不同的版本中,VC有着不同的特性和功能。本话题主要关注如何将VC7工程转换回VC6,这是一个常见的需求,因为有些开发者可能需要在旧...
标题中的"vc9、vc11运行库32"指的是微软Visual C++运行库的两个特定版本,适用于32位操作系统。Visual C++是微软开发的一款集成开发环境,用于创建C++应用程序。运行库是这些应用程序运行所必需的组件,包含了一些预...
本资源包含了多个版本的VC运行库,其中包括VC9、VC10、VC11、VC12和VC14版本。这些版本又分别提供了针对32位(x86)和64位(x64)系统的安装程序。VC运行库是大多数Windows应用程序运行所必需的组件,尤其是那些使用...
易语言vc6+vc7+vc8+vc9+vc2010+连接转换器.rar.tdl.qrs
《VC6.0+SDK更新+VC助手:深入解析与应用》 Visual C++ 6.0(简称VC6.0)是微软公司推出的一款经典且功能强大的C++集成开发环境,深受许多开发者喜爱,尤其是对Windows API和MFC有深度需求的程序员。本次我们关注的...
在标题和描述中提到的"phpstudy所需的vc11和vc14运行库"是关键组件,它们对于PHPStudy的正常运行至关重要。 首先,我们需要理解VC(Visual C++)运行库。这是微软Visual Studio开发环境中的一部分,用于编译C++程序...
phpstudy集成安装环境所需 运行库 vc8-vc17(32+64位)下载集合 注意:该产品并非易语言的VC编译器,该软件为主要给一些软件如phpstudy等提供的运行环境, 产品从微软官网下载,请放心使用。 安装使用说明: php5.3、...
值得注意的是,VC14还包括一个更新版本VC14.0.24215,对应于Visual Studio 2015 Update 3,提供了更多的修复和优化。 在搭建PHPstudy环境时,这些vc运行库是非常关键的组件,因为PHP在Windows系统上运行时依赖于...
而"VC助手",全称为Visual Assist X,是专为提升VC开发效率而设计的一款插件,它在标题和描述中被提及的"VC助手最新版本_vc_assist_支持vc6.0_vc2005_vc2008.RAR"正是针对这些版本的增强工具。 Visual Assist X,...
**VC9-14(32位、64位)运行库详解** 在计算机编程领域,尤其是涉及到C++编程时,Visual C++运行库(也称为VC库)扮演着至关重要的角色。这些运行库是微软开发的动态链接库,包含了执行C++程序所需的基本函数和组件。...