HDC具体表示什么意思??? ( 积分: 50 )

  • 主题发起人 主题发起人 镀金的乞丐
  • 开始时间 开始时间

镀金的乞丐

Unregistered / Unconfirmed
GUEST, unregistred user!
我也知道DC是device context,是设备上下文、设备描述。这样的解释太简单,太抽象,我没法理解。哪位大虾能提供这方面的详细资料?DC详细的定义以及用法,最好能有代码例子说明,不然我不知道怎么用。邮箱:liming19780725@163.com
 
我也知道DC是device context,是设备上下文、设备描述。这样的解释太简单,太抽象,我没法理解。哪位大虾能提供这方面的详细资料?DC详细的定义以及用法,最好能有代码例子说明,不然我不知道怎么用。邮箱:liming19780725@163.com
 
简单的说就是设备 Handle.
 
hdc:=getdc(handle);
HDC=Handle of Device Context
DC和Handle 都是32位整数,不过说法不一而已,DC 的 Handle 叫 HDC, Window 的 Handle叫 HWnd。

procedure TForm1.Button1Click(Sender: TObject);
var
hDesktop,hDesktopDC: THandle;
FBmp: TBitmap;
begin
FBmp := TBmp.Create;
hDeskTop := FindWindow('Progman', nil); // 得到桌面窗口句柄
try
hDesktopDC := GetDC(0); // 得到桌面窗口 DC 句柄
FBmp.Width := 100; FBmp.Height := 100;
BitBlt(FBmp.Canvas.Handle,0,0,100,100,HDesktopDC,0,0,SRCCOPY); // 这样可以把 DC 的内容保存到 TBitmap 对象中
FBmp.SaveToFile(...);
finally
ReleaseDC(hDesktop, hDesktopDC);
FBmp.Free;
end;
end;
 
例如Windows绘图:
--------------------------------------------------------------------------------

所有 Windows 的绘图, 都必须先取得 hDC, 然後以 hDC 呼叫绘图的 API。hDC 是 handle of DC(Device Context) 的缩写, DC 呢?Windows 规定任何程式绘图之前都必须先配置一块绘图专用的系统资源(通常是记忆体),这绘图专用的系统资源就是 DC 啦。
DC 与其他系统资源一样, 会有一个唯一的 handle 值, 此一 handle 值便是 hDC。
 
* HINSTANCE -> 执行实体(程序自身)句柄
* HWND -> 窗口句柄
* HDC -> 设备句柄

什么是句柄? 形象地讲就是苹果把,抓住苹果把就可以咬苹果了DC

DC (Device Context),这是一个描述装置特性的资料结构,它的内部由该装置的驱动程式填满。

例如:
GDI用它来保存图形对象的信息,这些信息决定了文本和图形在显示器和打印机上的外观。用来决定显示的笔、刷子、字体、颜色和位图的类型都保存在设备上下文中。

Windows CE支持下表所描述的设备上下文。

设备上下文类型
目的

显示器
支持视频显示器上的绘制操作

打印机
支持打印机上的绘制操作

内存
支持设备独立位图的绘制操作



应用程序绝对不可以直接访问设备上下文;它通过调用可以访问DC的函数间接操纵设备上下文结构。

可以通过调用BeginPaint 函数获得指向设备上下文的句柄。通过GetDC 函数获得设备上下文,通过CreateDC和CreateCompatibleDC函数创建设备上下文。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
686
import
I
后退
顶部