显示设备上下文

【勇芳软件工作室】汉化HomePreviousNext

Windows为视频显示提供三种类型的设备上下文:类,公共和私有。类和私有设备上下文用于执行大量绘图操作的应用程序,如计算机辅助设计(CAD)应用程序,桌面发布应用程序,绘图和绘画应用程序等。公共设备上下文用于执行不常用绘图操作的应用程序。

应用程序通过调用BeginPaintGetDC功能并识别出现相应输出的窗口来获取显示设备上下文。(设备上下文Windows返回的类型取决于应用程序注册其窗口类的方式。)通常,只有当应用程序必须在客户端区域中绘制时,应用程序才能获取显示设备上下文。当应用程序完成绘图时,它必须通过调用EndPaintReleaseDC功能来释放设备上下文。

类设备上下文

严格支持类设备上下文以与以前版本的Windows兼容。编写基于Win32的应用程序时,请避免使用类设备上下文。改用私有设备上下文。

通用设备上下文

通用设备上下文是由Win32 API的窗口管理组件在特殊高速缓存中维护的显示设备上下文。应用程序通过调用GetDCGetDCExBeginPaint函数获取标识可用的公共设备上下文之一的句柄。在返回此设备上下文句柄之前,Windows将使用默认对象,属性和模式初始化公共设备上下文。应用程序执行的任何绘图操作都使用这些默认值,除非调用其中一个GDI函数来选择一个新对象,更改现有对象的属性或选择一个新模式。

由于在窗口管理器的堆中只存在有限数量的通用设备上下文,所以应用程序在完成绘制后应该释放这些设备上下文。一个应用程序通过调用ReleaseDCEndPaint函数来释放通用的设备上下文。当应用程序释放通用设备上下文时,对默认数据的任何更改都将丢失。

专用设备上下文

私有设备上下文是显示设备上下文,即使在应用程序调用{??989796039}或EndPaint函数之后,与通常的设备上下文不同,仍保留对默认数据__的任何更改。私有设备上下文不是窗口管理器缓存的一部分,因此在使用后不需要释放。窗口管理器在该类的最后一个窗口被破坏后自动删除私有设备上下文。

当应用程序初始化WNDCLASS WNDCLASS结构的样式成员并调用RegisterClass函数时,应用程序首先指定CS_OWNDC窗口类样式,创建一个专用设备上下文。(有关窗口类的详细信息,请参阅窗口类)。创建具有CS_OWNDC样式的窗口后,应用程序可以调用GetDCGetDCExBeginPaint函数获取一个标识私有设备的句柄上下文。应用程序可以继续使用该句柄(和相关的设备上下文),直到它删除使用此类创建的窗口。图形对象及其属性或图形模式的任何更改都将由Windows保留,直到窗口被删除为止。