Re: Displaying Text
When you create a normal MFC application, the Wizards will automatically
create an OnDraw() method for you in your view class. This method accepts a
pointer to a CDC object as an argument. Just use that:
void CMyView::OnDraw(CDC* pDC)
{
// This is only needed if you're using data stored in the document class
CMyDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;
// TODO: add draw code for native data here
pDC->TextOut(50, 50, _T("Hello"));
}
--
Jonathan Wood
SoftCircuits Programming
http://www.softcircuits.com
<katz911@gmail.com> wrote in message
news:1183797209.530797.57190@n2g2000hse.googlegroups.com...
On Jul 7, 11:11 am, "David Ching" <d...@remove-this.dcsoft.com> wrote:
<katz...@gmail.com> wrote in message
news:1183794355.239242.307680@k79g2000hse.googlegroups.com...
Hello,
I have an MFC application, where I'm interested in displaying some
text for the user in the client area. To do this, I create a device
context, and use the .TextOut method to display CStrings.
The problem begins when the window is resized, or when a menu that
hides the text pops - once the menu is closed, or after the window has
been resized, the text (or parts of it) are being erased.
How can this be solved? I read that when the window is resized,
OnPaint is called, and thus I tried displaying the text from there -
hoping to re-display it "after" it has been erased. The result was a
flickering text when the window is being resized, which is deleted
when the user lets go of the mouse button.
You're right to put the TextOut in OnPaint(). But make sure you're using
the CPaintDC() in the OnPaint() and not another. You can post your code
for
more help.
-- David
Here's the code:
void CMainFrame::OnPaint()
{
CPaintDC dc(this);
dc.TextOut(50,50,"Hello");
}
Not very complex, as you see.. And still, when the user resizes the
window, the result is a flickering "hello" as long as the left mouse
button is pressed and the window size is being changed. As soon as I
let go of the button, I'm left with a blank screen.