Re: Dialog based application and generated OnPaint for the dialog class
I think this is saying that if you had used a doc/view (SDI or MDI) paradigm
from the wizard the framework would do it for you. Since you have a dialog
application you have to do it yourself (thus they provide the code for you).
Tom
"Eric Lilja" <mindcoolerremoveme@gmail.com> wrote in message
news:eLAA1vD2HHA.3760@TK2MSFTNGP03.phx.gbl...
Hello, I'm using MSVC++ 8.0 SP1 and I created a dialog based MFC
application using the application wizard. In my CDialog-derived class,
MyDialog, the appwizard generated the following OnPaint() for me:
// If you add a minimize button to your dialog, you will need the code
below
// to draw the icon. For MFC applications using the document/view model,
// this is automatically done for you by the framework.
void
MyDialog::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // device context for painting
SendMessage(WM_ICONERASEBKGND,
reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);
// Center icon in client rectangle
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;
// Draw the icon
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CDialog::OnPaint();
}
}
The comment says that I need this to display an icon if I decide to add a
minimize button to my dialog if I'm not using docview. Well, I added a
minimize button and commented everything up to and including the
else-statement out, and it displays the icon just fine. But I don't have a
document or a view class and I don't recall making any particular choices
about that when I went through the appwizard.
So it seems I have a framework support application even though I have no
view or document class and that means I don't have to redefine OnPaint()
as far as displaying an icon for a dialog with a minimize box is
concerned, is that right? I'd like to remove this OnPaint() if I don't
need it. No use doing something that the framework is already taking care
of.
- Eric