Solved

Setting Font in CEdit

Posted on 1998-09-11
4
825 Views
Last Modified: 2013-12-03
Hi,

I am having trouble setting the font for a CEdit.
void someroutine( );
{
  CFont fnt;
  fnt.CreatePointFont( 100, "Times New Roman" );
  setfont( &fnt );
}

void setfont( CFont* fnt )
{
  m_Edit.SetFont( &fnt )
}

The trouble is that the control does not seem to redraw correctly.

I have tried m_Edit.InvalidateRect( NULL ), which also does not help.

I have changed the m_Edit to an m_pEdit (CEdit*) and re-created the edit control then set the font, and this also doesn't work, which I find *very* odd.

The font does change, but if you make it bigger than the current font, the cursor size is small and the individual lines in the CEdit are drawn very squashed, covering each other. The cursor also looks to narrow for the height of the text?

Please note that I am using a property sheet.
Each property sheet has an edit control on it, and some must be proportional fonts, and others not.

I don't get it.


Regards
-craig.
0
Comment
Question by:cmain
  • 2
4 Comments
 

Accepted Solution

by:
bobbym earned 50 total points
ID: 1322076
For me the problem seem to be that the CFont object is destroyed and so the associated Windows object is destroyed too. To correct it just call font.Detach() before you exit someroutine and everything will be OK.

Hope that helped :)
0
 
LVL 7

Expert Comment

by:psdavis
ID: 1322077
I agree with BobbyM,

You could also add the font pointer to your header file and create the fonts during the constructor of the property sheet.  Then within the OnSetActive of each page, then call

m_Edit.SetFont( m_fntProportional );

Then you only have to create the fonts once and use them whenever you need to.

Make sure you delete them in the destructor!  

Phillip

0
 
LVL 1

Author Comment

by:cmain
ID: 1322078
Your answer was right on the button (no pun intended).
Do you know if there are docs on when to use the detach methods?
Thankx

0
 

Expert Comment

by:bobbym
ID: 1322079
Hmmm whenerver you need it :)). Well genereally whenever you need to disconnect the relationship between the C++ object and the Windows object that's it. Sorry I do not know about any docs.
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
How to know only "File created" with EventLog 3 32
Doc'in system (example?) BA 7 86
noX challenge 17 91
Path of Workbook 3 59
Introduction: Database storage, where is the exe actually on the disc? Playing a game selected randomly (how to generate random numbers).  Error trapping with try..catch to help the code run even if something goes wrong. Continuing from the seve…
Introduction: Dialogs (2) modeless dialog and a worker thread.  Handling data shared between threads.  Recursive functions. Continuing from the tenth article about sudoku.   Last article we worked with a modal dialog to help maintain informat…
This video will show you how to get GIT to work in Eclipse.   It will walk you through how to install the EGit plugin in eclipse and how to checkout an existing repository.
Excel styles will make formatting consistent and let you apply and change formatting faster. In this tutorial, you'll learn how to use Excel's built-in styles, how to modify styles, and how to create your own. You'll also learn how to use your custo…

930 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

11 Experts available now in Live!

Get 1:1 Help Now