Avatar billede rigpig Nybegynder
08. marts 2006 - 23:00 Der er 4 kommentarer og
1 løsning

Ændre fontstørrelse i editbox

Visual C++ 6
MFC
Kan man ændre fontstørrelsen i en editbox ?
Peter
Avatar billede jpk Nybegynder
09. marts 2006 - 08:17 #1
Ja, alle kontroller der nedarver fra CWnd (som CEdit), har SetFont metoden.
Du kan oprette en font som member på dialog-klassen og bruge den.

Hvis du vil have mere avanceret styles (color, blink osv.), kan du se dette ex:
http://www.codeproject.com/miscctrl/cfctrl.asp
Avatar billede rigpig Nybegynder
09. marts 2006 - 10:11 #2
Havde kigget lidt på denne side, prøvede at downloade demo'n men fik det ikke til at køre.
Da editboxen først får font efter udregning, regner jeg med at det er denne del af siden jeg skal bruge:

"If your control doesn't contain a font (e.g. you create it in code by a call to Create function) CFontCtrl cannot change font style/height. In this case use one of the SetFont functions to set the font to your control. If you create the control on base of one of five derived classes - don't worry - the predefined style/height will be added to selected font.

Ovenstående er kinesisk for mig, kan ikke lige se hvor kontrollen over fontstørrelsen ligger, MSDN Libary har dog denne:

Sample Code

/*
* Compiler options needed: None
*/


class CMyAboutBox : public CDialog {
  CFont m_font;

  public:
      // Constructor -- This code assumes a dialog box
      // template named "ABOUTDLG" in the application's .RC file.

      CMyAboutBox(CWnd* pParentWnd = NULL) :
        CModalDialog("ABOUTDLG", pParentWnd) {};

      BOOL OnInitDialog();

};

// OnInitDialog() function -- Called after Windows creates
// the dialog box but before it is painted on the screen.


BOOL CMyAboutBox::OnInitDialog() {
  LOGFONT lf;                        // Used to create the CFont.

  CDialog::OnInitDialog();          // Call default ::OnInitDialog

  memset(&lf, 0, sizeof(LOGFONT));  // Clear out structure.
  lf.lfHeight = 20;                  // Request a 20-pixel-high font
  strcpy(lf.lfFaceName, "Arial");    //    with face name "Arial".
  m_font.CreateFontIndirect(&lf);    // Create the font.

  // Use the font to paint a control. This code assumes
  // a control named IDC_TEXT1 in the dialog box.
  GetDlgItem(IDC_TEXT1)->SetFont(&m_font);

  return TRUE;

}
Er det dette du mener med SetFont metoden?

Tak for hjælpen forleden med Tonmiles koden, det virker bare! har lært en masse, vil gerne have resultaterne med en større font, derfor indlæget.
Peter
Avatar billede jpk Nybegynder
09. marts 2006 - 10:17 #3
Hej igen

Dit sidste eksempel ser rimeligt ud, kan du ikke få det til at virke?

I eksemplet skal IDC_TEXT1 være id'et på den edit du vil ændre fonten på.
Du kan også bruge en member variabel istedet, så det bliver:

m_EditMember.SetFont(&m_font); // m_EditMember er bare et eksempel, navngiv som det passer.
Avatar billede rigpig Nybegynder
09. marts 2006 - 10:43 #4
Leger lidt med det, tak igen.
Smid et svar jpk.
Peter
Avatar billede jpk Nybegynder
09. marts 2006 - 10:50 #5
Okay, men skriv bare igen hvis det kniber...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester