Total area of a window is divided in two parts client area and non-client area.
Client area of a window is the area of window without title bar. Not client area is the area of a window where windows draw title bar, menu, minimize/maximize button and exit button etc. GetDC () API returns the device context of the client area of the window. Where as GetWindowDC () returns the total area of the window including non-client area. To draw only in client area we should use device context returned by GetDC(). To draw in client or non-client area we should use device context returned by GetWindowDC(). GetDC() and GetWindowDC() function reference has been listed below for your reference.
GetDC: The GetDC() function retrieves a handle to a display device context for the client area of a specified window or for the entire screen. You can use the returned handle in subsequent GDI functions to draw in the device context.
HWND hWnd // handle to a window
GetWindowDC: The GetWindowDC() function retrieves the device context (DC) for the entire window, including title bar, menus, and scroll bars. A window device context permits painting anywhere in a window, because the origin of the device context is the upper-left corner of the window instead of the client area. GetWindowDC assigns default attributes to the window device context each time it retrieves the device context. Previous attributes are lost.
HWND hWnd // handle of window
Similar topics related to this section
Microsoft Win32 interview questions | TechInterviews
Win32API Interview Questions and Answers :: ALL Interview .com
MFC Interview Questions and Answers :: ALL Interview .com
VC++ Interview Questions and Answers - VC++ Interview FAQs & VC++
MFC - MFC Interview Questions
Rate this topic.
Help us to improve this topic. Your feedback is essential to us. Please suggest your remarks, ratings and corrections regarding the above section. Please fill the form and submit. If your suggestion contains graphics/formatted text/word document, please attach file(s).
Note: Only members are allowed, * fields are mandatory.