Use of WM_SIZE Message:
Whenever the WM_SIZE message is handled and the graphical objects on the output window will also change consequently to the output window. The function Invalidate (TRUE) will call the OnDraw() and the TRUE parameter will clear the screen. The DeflateRect will shrink the rectangle
1. Produce the SDI application wmsize.
2. Handle the WM_SIZE message for the CWmsizeView object id.
3. Select the class tabpage
4. Right Click on the CWmsizeView . A menu will pop up.
5. Choose the Add member variable.
6. State the type as CRect and the variable name as m_rdRect.
7. Now type the coding as shown in the OnDraw()
void CWmsizeView::OnDraw(CDC* pDC)
{
pDC->SelectStockObject(GRAY_BRUSH);
m_rdRect.DeflateRect(50,10);
pDC->Rectangle(m_rdRect);
}
8. Type the coding below in the OnSize event handler.
void CWmsizeView::OnSize(UINT nType, int cx, int cy)
{
GetClientRect(&m_rdRect);
Invalidate(TRUE);
}
9. Construct and execute the project.
10. A gray window will be exhibited within a white window. The inner window is due to the deflate rectangle function.
11. Transform the brush as DKGRAY_BRUSH,HOLLOW_BRUSH & GRAY_BRUSH and examine the output.
12. Change the m_rdRect.DeflateRect (2,2,2,2) and construct and execute the project.
13. Delete the OnSize code.
14. Eliminate the message WM_SIZE by using the class wizard.
15. Initialize the rectangular object as shown.
16. CSizeView::CSizeView():m_rdRect (10,30,50,20)
{}
17. Construct and execute the project.
18. You will examine the impact of the WM_SIZE message.