Introduction
MFC provides a set of "wrapper objects" that contain embedded Windows
objects. For example, a CWnd wraps an HWND, a CFont wraps an HFONT, a CBrush
wraps an HBRUSH, and so on. These are summarized in the table below. There are
some significant interactions between the MFC and Windows objects, which you
need to understand.
Failure to deal with these issues can lead to problems with spontaneous ASSERT
statements, access errors, disappearing objects, and other, more subtle problems.
This essay attempts to elucidate the issues of dealing with the MFC/Windows
interface.
|
MFC Ojbect
|
Windows Object
|
(variant)
|
| CWnd |
HWND |
any window |
| CEdit |
HWND |
EDIT |
| CListBox |
HWND |
LISTBOX |
| CStatic |
HWND |
STATIC |
| CComboBox |
HWND |
COMBOBOX |
| CGDIObject |
(gdi object) |
(any) |
| CBitmap |
HBITMAP |
|
| CBrush |
HBRUSH |
|
| CPen |
HPEN |
|
| CFont |
HFONT |
|
| CRegion |
HRGN |
|
| CPalette |
HPALETTE |
|