C#中如何从Graphics 得到hdc

问题描述

请问,用Graphicsg=Graphics.FromHdc(hDCDesktop);从hdc得到了对应的Graphics那么如何从Graphics得到hdc呢?是用Graphics.GetDc()吗?Graphics.GetDc()得到的是intptr型,如何在转变成unint型呢?

解决方案

解决方案二:
HDC是一个设备句柄,在C#中用IntPtr表示最恰当。你要换成uint也可以(64位系统可能会有问题):Graphicsg=...;IntPtrhdc=g.GetHdc();uintuintHDC=(uint)hdc.ToInt32();//<----//myDraw(uintHDC,...);g.ReleaseHdc(hdc);...

解决方案三:
帮顶下.

时间: 2024-09-20 13:49:14

C#中如何从Graphics 得到hdc的相关文章

vb6.0中的Me.hdc ,在c#中要用什么来表达?大侠们帮帮忙

问题描述 如题 解决方案 解决方案二:this.hdc;解决方案三:晕,this中根本没有这个属性解决方案四:Handle解决方案五:请问,用Graphicsg=Graphics.FromHdc(hDCDesktop);从hdc得到了对应的Graphics那么如何从Graphics得到hdc呢?是用Graphics.GetDc()吗?Graphics.GetDc()得到的是intptr型,如何在转变成unint型呢?解决方案六:using(Graphicsg=this.CreateGraphic

对C#中的TreeView添加背景图

treeview 在微软的.NET的Forms窗口控件中,比如Treeview和ListView,仅仅是对通用控件的简单封装,因此他们不正常的引发Paint事件. 微软所发布内容中,能看到的唯一建议就是设置控件的ControlStyles.UserPaint类型,然后自己为控件做所有的绘图操作. (译注:老外提供了一个TreeViewWithPaint控件类,派生自TreeView类,提供了Paint事件的挂接.) 一.为了解决这个问题,我们在类内部使用了一个基于Bitmap类的Graphics

精通.NET中的日常打印(使用C# 非常实用)

打印 文章标题是翻译出的中文标题,英文原文标题为:Master Everyday Printing in .NET 文章来自Fawcette Technical Publications(www.ftponline.com) 文章详细地讲述了 System.Drawing.Printing  命名空间中的 20个类 7 个枚举以及 3个委托的用法. 本文将先贴出英文原文,最后再贴出完整源代码,希望对大家有所帮助! 英文原文: Listing 1 C# Create and Dispose. <?

NET中打印包含有格式的 RichTextBox 的内容

打印 概要本文逐步说明如何打印 RichTextBox 控件的内容.RichTextBox 控件不提供打印其内容的方法.但是,您可以扩展 RichTextBox 类以使用 EM_FORMATRANGE 消息.然后,您可以将 RichTextBox 的内容发送到某个输出设备,例如打印机. 创建 RichTextBoxPrintCtrl 控件要扩展 RichTextBox 类并使用 EM_FORMATRANGE 来打印 RichTextBox 控件的内容,请按照下列步骤操作: 1. 使用 Micro

NET 中,使用 GDI 来精确测量文本的实际绘出尺寸(C#)

阅读要求:了解 C# 调用 Win32API 的基本原理和操作方式 -------------------------------------------------------------------------------- 在开发 WinForm 控件时,通常需要测量文本绘出时的实际尺寸..NET FCL 中的 GDI+ 类--System.Drawing.Graphics 提供了用于上述需要的 MeasureString 方法,该方法返回了一个 SizeF 结构的浮点数表示的结果,从表面

C# WinForm 中在窗口标题栏上加按钮

按钮 在窗口标题栏上加按钮本来不是什么新鲜事了,我在VC++下早也实现过了(相信很多人也都实现过了).今天一个朋友问我C# WinForm下可否实现,我就顺便拿C#写了一个.   原理是一样的,都是重写窗口过程(WndProc),处理一些非客户区消息(WM_NCxxxx),可以说本来没有什么新意,可是从写这个程序的过程中,我也学到了两个技巧:    1).C#中重写窗口过程不用再调用SetWindowLong API了,直接overide一个WndProc就可以了.    2).Windows

C# WinForm中在窗口标题栏上加按钮

在窗口标题栏上加按钮本来不是什么新鲜事了,我在VC++下早也实现过了(相信很多人也都实现过了).今天一个朋友问我C# WinForm下可否实现,我就顺便拿C#写了一个. 原理是一样的,都是重写窗口过程(WndProc),处理一些非客户区消息(WM_NCxxxx),可以说本来没有什么新意,可是从写这个程序的过程中,我也学到了两个技巧: 1).C#中重写窗口过程不用再调用SetWindowLong API了,直接overide一个WndProc就可以了. 2).Windows API中的HDC可以通

C++ Builder中如何保持控件的位置及大小

C++ Builder/Delphi是Inprise(原Borland)公司广受欢迎的可视化C++/Pascal开发工具,利用它可极大地加快应用程序的开发速度.但是,也正因为其是可视化编程工具,将控件拖放到Form后,控件的位置就固定死了.随着Form的大小或屏幕分辨率的改变,控件和Form本身的位置往往变得非常混乱.本文将介绍一些正确定位控件及Form的方法. 利用OnResize事件改变控件位置及大小 C++ Builder/Delphi中的Form控件有一个OnResize事件,Form的

graphics作图-求教如何运行包含graphics头文件的程序

问题描述 求教如何运行包含graphics头文件的程序 在codeblocks中包含了graphics头文件,但是在编译时却不能正常编译,显示没有找到路径.求教怎样才能正确地运行包含graphics的程序. 解决方案 下载borland c或者turbo c,因为graphic依赖dos,所以不是编译器的问题,肯定windows linux平台底层都不支持的. 解决方案二: NetBeans运行包含头文件的c程序