C++:CWnd下GetDC()函数,获取了什么?存在哪里?
6个回答
展开全部
GetDC()的返回值是CDC*. 也就是说是一个指向CDC类的指针. CDC类的对象它是MFC内部为我们动态构建的, 储存的地方也就是指针指向的地方, 但是具体是在代码的哪个部分生成的, 这点我们不得而知. 不过需要注意的一件事情是, 用GetDC()获取的CDC对象, 必须用ReleaseDC()将其释放. 如:ReleaseDC(GetDC());
至于获得CDC指针的用处有什么, 那么在这里是不可能一言而尽了. 所以GUI函数都在它里面. 因此只能是用到哪里, 学到哪里, 不可能全部学会.
至于获得CDC指针的用处有什么, 那么在这里是不可能一言而尽了. 所以GUI函数都在它里面. 因此只能是用到哪里, 学到哪里, 不可能全部学会.
展开全部
建议去查MSDN。
MSDN在线的网址是http://msdn.microsoft.com
以下解释来自MSDN:
CWnd::GetDC
Retrieves a pointer to a common, class, or private device context for the client area depending on the class style specified for the CWnd.
Return Value
Identifies the device context for the CWnd client area if successful; otherwise, the return value is NULL. The pointer may be temporary and should not be stored for later use.
Remarks
For common device contexts, GetDC assigns default attributes to the context each time it is retrieved. For class and private contexts, GetDC leaves the previously assigned attributes unchanged. The device context can be used in subsequent graphics device interface (GDI) functions to draw in the client area.
Unless the device context belongs to a window class, the ReleaseDC member function must be called to release the context after painting.
A device context belonging to the CWnd class is returned by the GetDC member function if CS_CLASSDC, CS_OWNDC, or CS_PARENTDC was specified as a style in the WNDCLASS structure when the class was registered.
Requirements
Header: afxwin.h
MSDN在线的网址是http://msdn.microsoft.com
以下解释来自MSDN:
CWnd::GetDC
Retrieves a pointer to a common, class, or private device context for the client area depending on the class style specified for the CWnd.
Return Value
Identifies the device context for the CWnd client area if successful; otherwise, the return value is NULL. The pointer may be temporary and should not be stored for later use.
Remarks
For common device contexts, GetDC assigns default attributes to the context each time it is retrieved. For class and private contexts, GetDC leaves the previously assigned attributes unchanged. The device context can be used in subsequent graphics device interface (GDI) functions to draw in the client area.
Unless the device context belongs to a window class, the ReleaseDC member function must be called to release the context after painting.
A device context belonging to the CWnd class is returned by the GetDC member function if CS_CLASSDC, CS_OWNDC, or CS_PARENTDC was specified as a style in the WNDCLASS structure when the class was registered.
Requirements
Header: afxwin.h
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你自己建一个HDC 变量就行了,然后存在里面啊! 比如: hdc = GetDC(hwnd);
追问
我看到书上是Ondraw(GetDC()),是什么意思?
追答
估计你可能要疑惑GetDC()为什么没参数......答案应该是这个
函数原型:HDC GetDC(HWND hWnd);
参数:hWnd:设备上下文环境被检索的窗口的句柄,如果该值为NULL,GetDC则检索整个屏幕的设备上下文环境。
至于Ondraw应该是个画图函数。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
获得内存DC
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
CWnd类提供了微软基础类库中所有窗口类的基本功能。
CWnd对象与Windows的窗口不同,但是两者有紧密联系。CWnd对象是由CWnd的构造函数和析构函数创建或销毁的。另一方面,Windows的窗口是Windows的一种内部数据结构,它是由CWnd的Create成员函数创建的,而由CWnd的虚拟析构函数销毁。DestroyWindow函数销毁Windows的窗口,但是不销毁对象。
CWnd类和消息映射机制隐藏了WndProc函数。接收到的Windows通知消息通过消息映射被自动发送到适当的CWnd OnMessage成员函数。你可以在派生类中重载OnMessage成员函数以处理成员的特定消息。
CWnd类同时还使你能够为应用程序创建Windows的子窗口。先从CWnd继承一个类,然后在派生类中加入成员变量以保存与你的应用程序有关的数据。在派生类中实现消息处理成员函数和消息映射,以指定当消息被发送到窗口时应该如何动作。
你可以经过两个步骤来创建一个子窗口。首先,调用构造函数CWnd以创建一个CWnd对象,然后调用Create成员函数以创建子窗口并将它连接到CWnd对象。
当用户关闭你的子窗口时,应销毁CWnd对象,或者调用DestroyWindow成员函数以清除窗口并销毁它的数据结构。
在微软基础类库中,从CWnd派生了许多其它类以提供特定的窗口类型。这些类中有许多,包括CFrameWnd,CMDIFrameWnd,CMDIChildWnd,CView和CDialog,被用来进一步派生。从CWnd派生的控件类,如CButton,可以被直接使用,也可以被进一步派生出其它类来。
#include <afxwin.h>
请参阅:CFrameWnd, CView
CWnd类的成员 初始化 对话框项函数 初始化消息处理函数
窗口状态函数 数据绑定函数 系统消息处理函数
窗口大小和位置 菜单函数 一般消息处理函数
窗口访问函数 工具提示函数 控件消息处理函数
更新/绘图函数 定时器函数 输入消息处理函数
坐标映射函数 警告函数 非客户区消息处理函数
窗口文本函数 窗口消息函数 MDI消息处理函数
滚动函数 剪贴板函数 剪贴板消息处理函数
拖放函数 OLE控件 菜单循环通知
插字符号函数 可重载函数
数据成员 m_hWnd 指明与这个CWnd对象相关联的HWND句柄
构造和析构 CWnd 构造一个CWnd对象
DestroyWindow 销毁相关联的Windows窗口
初始化 Create 创建并初始化与CWnd对象相关联的子窗口
PreCreateWindow 在与CWnd对象相关联的窗口被创建之前调用
CalcWindowRect 调用这个函数以计算窗口客户区的矩形
GetStyle 返回当前的窗口风格
GetExStyle 返回窗口的扩展风格
Attach 将Windows句柄与CWnd对象相连接
Detach 将一个Windows句柄从CWnd对象上分离并返回这个句柄
PreSubclassWindow 在调用SubclassWindow之前,允许其它必要的子类化工作
SubclassWindow 将窗口与CWnd对象相连接,并使它通过CWnd的消息映射转发消息
UnsubclassWindow 将窗口与CWnd对象分离
FromHandle 当给定一个窗口的句柄时,返回CWnd对象的指针。如果没有CWnd对象与这个句柄相连接,则创建一个临时的CWnd对象并与之相连接
FromHandlePermanent 当给定一个窗口的句柄时,返回CWnd对象的指针。如果没有CWnd 对象与这个句柄相连接,则返回NULL
DeleteTempMap CWinApp的空闲处理函数自动调用这个函数,清除由FromHandle创建的任何临时CWnd对象
GetSafeHwnd 返回m_hWnd,如果该指针为NULL,则返回NULL
CreateEx 创建一个Windows的可重叠窗口、弹出窗口或子窗口,并把它连接到一个CWnd对象上
CreateControl 创建一个OLE控件,该控件在MFC程序中由一个CWnd对象代表
CWnd对象与Windows的窗口不同,但是两者有紧密联系。CWnd对象是由CWnd的构造函数和析构函数创建或销毁的。另一方面,Windows的窗口是Windows的一种内部数据结构,它是由CWnd的Create成员函数创建的,而由CWnd的虚拟析构函数销毁。DestroyWindow函数销毁Windows的窗口,但是不销毁对象。
CWnd类和消息映射机制隐藏了WndProc函数。接收到的Windows通知消息通过消息映射被自动发送到适当的CWnd OnMessage成员函数。你可以在派生类中重载OnMessage成员函数以处理成员的特定消息。
CWnd类同时还使你能够为应用程序创建Windows的子窗口。先从CWnd继承一个类,然后在派生类中加入成员变量以保存与你的应用程序有关的数据。在派生类中实现消息处理成员函数和消息映射,以指定当消息被发送到窗口时应该如何动作。
你可以经过两个步骤来创建一个子窗口。首先,调用构造函数CWnd以创建一个CWnd对象,然后调用Create成员函数以创建子窗口并将它连接到CWnd对象。
当用户关闭你的子窗口时,应销毁CWnd对象,或者调用DestroyWindow成员函数以清除窗口并销毁它的数据结构。
在微软基础类库中,从CWnd派生了许多其它类以提供特定的窗口类型。这些类中有许多,包括CFrameWnd,CMDIFrameWnd,CMDIChildWnd,CView和CDialog,被用来进一步派生。从CWnd派生的控件类,如CButton,可以被直接使用,也可以被进一步派生出其它类来。
#include <afxwin.h>
请参阅:CFrameWnd, CView
CWnd类的成员 初始化 对话框项函数 初始化消息处理函数
窗口状态函数 数据绑定函数 系统消息处理函数
窗口大小和位置 菜单函数 一般消息处理函数
窗口访问函数 工具提示函数 控件消息处理函数
更新/绘图函数 定时器函数 输入消息处理函数
坐标映射函数 警告函数 非客户区消息处理函数
窗口文本函数 窗口消息函数 MDI消息处理函数
滚动函数 剪贴板函数 剪贴板消息处理函数
拖放函数 OLE控件 菜单循环通知
插字符号函数 可重载函数
数据成员 m_hWnd 指明与这个CWnd对象相关联的HWND句柄
构造和析构 CWnd 构造一个CWnd对象
DestroyWindow 销毁相关联的Windows窗口
初始化 Create 创建并初始化与CWnd对象相关联的子窗口
PreCreateWindow 在与CWnd对象相关联的窗口被创建之前调用
CalcWindowRect 调用这个函数以计算窗口客户区的矩形
GetStyle 返回当前的窗口风格
GetExStyle 返回窗口的扩展风格
Attach 将Windows句柄与CWnd对象相连接
Detach 将一个Windows句柄从CWnd对象上分离并返回这个句柄
PreSubclassWindow 在调用SubclassWindow之前,允许其它必要的子类化工作
SubclassWindow 将窗口与CWnd对象相连接,并使它通过CWnd的消息映射转发消息
UnsubclassWindow 将窗口与CWnd对象分离
FromHandle 当给定一个窗口的句柄时,返回CWnd对象的指针。如果没有CWnd对象与这个句柄相连接,则创建一个临时的CWnd对象并与之相连接
FromHandlePermanent 当给定一个窗口的句柄时,返回CWnd对象的指针。如果没有CWnd 对象与这个句柄相连接,则返回NULL
DeleteTempMap CWinApp的空闲处理函数自动调用这个函数,清除由FromHandle创建的任何临时CWnd对象
GetSafeHwnd 返回m_hWnd,如果该指针为NULL,则返回NULL
CreateEx 创建一个Windows的可重叠窗口、弹出窗口或子窗口,并把它连接到一个CWnd对象上
CreateControl 创建一个OLE控件,该控件在MFC程序中由一个CWnd对象代表
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询