OnPaint和OnSize什么区别?
时间: 2024-04-27 11:21:42 浏览: 7
OnPaint是一个Windows消息,用于在窗口客户区域中绘制图形,例如文本、图像等。它被触发时,应用程序必须更新客户区域。通常情况下,OnPaint函数是重写的,以便在绘制前执行其他任务。
OnSize也是一个Windows消息,用于通知应用程序窗口的大小已更改。当窗口的大小更改时,该消息被发送到应用程序的消息队列中。在接收到这个消息之后,应用程序可以执行任何必要的操作,例如重新计算布局,调整控件大小等。
因此,简单来说,OnPaint用于绘制图形,而OnSize用于处理窗口大小的更改。两个函数的作用是不同的,但它们都是处理Windows消息的重要方法。
相关问题
class COutputBar : public CBCGPDockingControlBar //停靠窗口创建 { public: COutputBar(); virtual ~COutputBar(); public: CBCGPTabWnd m_wndTabs; CListCtrl m_wndListRaster; CListCtrl m_wndListScaleInfo; CListCtrl m_wndListVector; public: void SetListRasterContent(IscRasterLayer *pRasterLayer); void SetListVectorContent(IscVectorLayer *pVectorLayer); void SetListScaleInfo(IscSegScale* pSegScale); protected: //{{AFX_MSG(COutputBar) afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); afx_msg void OnSize(UINT nType, int cx, int cy); afx_msg void OnPaint(); //}}AFX_MSG DECLARE_MESSAGE_MAP() }; #endif // !OUTPUTBAR_H
这段代码是一个定义了输出窗口类COutputBar的头文件,它继承了CBCGPDockingControlBar类,表示可以停靠在主窗口中。该类包含了三个列表控件:m_wndListRaster,m_wndListScaleInfo和m_wndListVector,用于显示栅格图层、矢量图层和比例尺信息。同时,该类还包含了三个函数:SetListRasterContent、SetListVectorContent和SetListScaleInfo,用于设置列表控件内容。该类还重载了OnCreate、OnSize和OnPaint等消息处理函数。
怎么能更好更方便的区分WinAPI和MFC的函数
一般来说,WinAPI和MFC的函数可以通过函数名和参数列表来区分。
WinAPI的函数名通常以大写字母开头,例如CreateWindow、GetWindowText等,而MFC的函数名则通常以小写字母开头,例如onPaint、OnSize等。此外,MFC的函数名通常包含单词“On”和事件名称,用于处理窗口消息和事件响应。
WinAPI的函数参数通常比较底层,需要程序员自己处理很多细节,例如窗口句柄、消息类型、消息参数等。而MFC的函数参数则通常更加高层,包含了更多的封装和抽象,例如CWnd对象、CDC对象等。
总体来说,WinAPI和MFC的函数具有不同的命名规范和参数类型,可以通过这些特征来区分它们。此外,可以参考相关的文档和书籍,学习如何更好地使用WinAPI和MFC的函数。