VC++中HPEN的用法

VC++中创建画笔的方法有Cpen和HPEN两种方法?,有木有人能介绍一下HPEN pen1;
和Cpen pen2;的区别 ,那么选入设备环境的写法有不同吗比如CPen pen2,*ppen2;
ppen2=pDC->SelecrObject(&pen2);,那么对于pen1的选入语句怎么写,能详细介绍HPEN的在追加分分

下面的代码将一个CPen对象转换为一个窗口句柄:

CPen myPen;

myPen.CreateSolidPen( PS_COSMETIC, 1, RGB(255,255,0) );

HPEN hMyPen = (HPEN) myPen;

图形对象:

Windows提供了多种绘图工具,设备上下文来使用。它提供了钢笔画线,刷填写的内饰,和字体绘制文本。 MFC提供了图形对象类相当于Windows中的画图工具。下表列出了可用的类和等效的Windows图形设备接口(GDI)句柄类型。

编程为Windows GDI一般文献适用于Microsoft基础类封装了GDI图形对象。

类适用于Windows GDI对象

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-05-19
HPen 是WIN32的类型,是WIN32 API,直接使用的是PEN的句柄。你有两种方式使用HPen,一是直接使用WIN32的函数,::SelectObject,用起来比较费劲;另一种方式是使用CPen中的函数载入这个Hpen的句柄。
你可以仔细看看CPen的成员变量,它有一个变量m_hPen,实际就是HPen类型。
详细用法你可以参考MSDN,一目了然.追问

msdn怎么搞呢,我的VC++里面没有这个不重装VC可以搞到MSDN吗

本回答被提问者采纳

VC++中HPEN的用法
下面的代码将一个CPen对象转换为一个窗口句柄:CPen myPen;myPen.CreateSolidPen( PS_COSMETIC, 1, RGB(255,255,0) );HPEN hMyPen = (HPEN) myPen;图形对象:Windows提供了多种绘图工具,设备上下文来使用。它提供了钢笔画线,刷填写的内饰,和字体绘制文本。 MFC提供了图形对象类相当于Windows中...

C++绘制多边形函数关于点定义的小问题。
作用在 屏幕上输出一个三角形。向导用vc win32嘛。拷贝到wm_paint 就可以了 HPEN pen=CreatePen(PS_SOLID,1,RGB(255,0,0));\/\/创建红色的画笔 HDC hdc2=GetDC(hWnd);SelectObject(hdc2,pen);POINT point[256]={x1,y1,x2,y2,x3,y3,...};\/\/x1 y1为三角形上的一个点确切的值如300 ...

VC++,谁帮我改成用不同颜色的线画线?
以下程序,使用Windows GDI函数随机画直线,当前直线的起点是前一条直线的终点。一开始的起点使用白色表示,为了明显,我特意把它画得大一点。画过的直线使用红色表示。正在画的直线使用蓝色表示。特别注意:为了让你看得更清楚,我特意延时1秒,换句话说,当你点击窗口右上角的“X”关闭按钮时,要等一...

VC++中,如何画“临时线”??
把全部代码都读懂!!事实上,那个程序我用了一个模板,是专门用来开发视频游戏、动画……用的模板程序 。你当然不会看懂,有不少GDI绘图操作(虽然我通常使用DirectX技术)。重复一遍,没叫你看全部代码,而是看:我声明的全局变量和宏;mypcluna_Init()、mypcluna_Main()、mypcluna_Shutdown()这三个...

求一个用于表白的C语言或C++的程序,谢谢大家了
for (time = 0; time<99999999; time++);system("color c");for (time = 0; time<99999999; time++);system("color d");for (time = 0; time<99999999; time++);system("color e");for (time = 0; time<99999999; time++);system("color f");for (time = 0; time<99999999; ...

vc里没有graphic.h,如何找到替代的来初始化图形界面
HPEN hp = CreatePen(PS_SOLID, 1, 0x000000); \/\/1宽度黑色画笔(画棋盘,棋子边框)HPEN hp2 = CreatePen(PS_SOLID, 2, 0x000000); \/\/2宽度黑色画笔(画棋盘边框)\/\/核心数据,影响整个AI判断\/\/棋型列表string cl[] = {"11111", "011110", "11110", "11101", "11011", "011100", "011010", "...

请问MFC中的DC、CDC、HDC、句柄、设备上下文究竟是什么意思? 希望能...
MFC提供数百个类,最重要的、也是编写任何VC++应用程序都必不可少的两个类CWinApp和CFrameWnd,这两个类是编写复杂庞大应用程序的基石。1>封装特性:构成MFC框架的是MFC类库而MFC类库又是C++的一个类库。这些类封装WIN32应用程序编程接口,OLE(Object Link Embed 对象链接嵌入)特性,ODBC和DAO数据访问的功能。2>继承特性...

为什么我用API create什么对象时,总是建不起,用MFC里的类却创建成功,这...
在VC++6.0中可以利用CreateProcess函数来创建一个进程去执行其他程序,而且可以设置该进程的优先级。CreateProcess函数的原型是: BOOL CreateProcess( LPCTSTR lpAppliciatonName LPTSTR lpCommandLine LPSECURITY_ATTRIBUTES lpProcessAttributes LPSECURITY_ATTRIBUTES lpThreadAttributes BOOL bInheritHandles DWORD dwCreationFlags...

如何用VC画出正弦函数的图像,初学,所以说的具体点!
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine,int nCmdShow){ WNDCLASS wndcls;wndcls.style= CS_HREDRAW;wndcls.lpfnWndProc=WinLiProc;wndcls.cbClsExtra=0;wndcls.cbWndExtra=0;wndcls.hInstance=hInstance;wndcls.hCursor=LoadCursor(NULL,IDC_CROSS);wndcls.hIcon=...

vc++ application程序查错
MyPaint1 是个函数, 在调用以前没有进行声明, 报了第一个错, 之后又发现了函数的定义位置, 就报了第二个错, 因为与默认的方式不同.把函数在调用前声明一下应该就可以了.

相似回答