CFontDialog, so schwer kanns doch net sein...



  • Hi zusammen,

    ich hab ein kleines proggie geschrieben, das die Common Dialogs benutzt, die waren alle kein Prob. bis ich auf CFontDialog traf.
    Ich kann die Attribute des ausgewählen Fonts sogar in eine TextBox auslesen mit CFontDialig fontDlg.Get...().
    Wenn ich aber in besagter TextBox eien Text stehen hab (ausgewählt und geladen mitm File Dialog) klappts einfach net.

    Hier mal mein Code :

    CFontDialog		fontDlg;
    	if (fontDlg.DoModal() == IDOK)
    	{
                CString name;
                name = fontDlg.GetFaceName ();
    
    	    m_font.CreateFont(32, 
                                   0, 
                                   0, 
                                   0, 
                           FW_NORMAL, 
                                   0, 
                                   0,
                                   0,                  
                     DEFAULT_CHARSET,
                OUT_CHARACTER_PRECIS, 
               CLIP_CHARACTER_PRECIS, 
                     DEFAULT_QUALITY, 
    			    NULL,
                                name);
    
           m_ctrEdit.SetFont(&m_font);
           UpdateData (FALSE);
    	}
    


  • UUUp, zu früh geklickt 😉

    hoffe Ihr könnt mir helfen oder kennt ihr n gutes Tut bezüglich zpeziell CFontDialog ich hab da sehr wenig gefunden !

    Vielen Dank Leute
    ShadowEater



  • So funzt das leider auch net:

    void CThereader0001Dlg::OnFontClicked() 
    {
    	CFont			m_font; 
    	CFontDialog		fontDlg;
    
    	if (fontDlg.DoModal() == IDOK)
    	{
    		CString strMsg;
    		CString txtMessage;
    
    // 			strMsg.Format("Schriftart: %s\r\nStyleName: %s\r\nSchriftgrad: \t%d\r\nFarbe: \t\t%d\r\nGewicht: \t\t%d\r\nDurchgestrichen:\t%d\r\nUnterstrichen: \t%d\r\nFett: \t\t%d\r\nKursiv: \t\t%d\r\n",
    // 				fontDlg.GetFaceName(),
    // 				fontDlg.GetStyleName(),
    // 				fontDlg.GetSize(),
    // 				fontDlg.GetColor(),
    // 				fontDlg.GetWeight(),
    // 				fontDlg.IsStrikeOut(),
    // 				fontDlg.IsUnderline(),
    // 				fontDlg.IsBold(),
    // 				fontDlg.IsItalic()
    // 				);
    
    			m_font.CreateFont (fontDlg.GetSize (),20,0,0,fontDlg.GetWeight (),fontDlg.IsItalic (),fontDlg.IsUnderline (),fontDlg.IsStrikeOut (),DEFAULT_CHARSET,OUT_DEFAULT_PRECIS,0,DEFAULT_QUALITY,DEFAULT_PITCH,fontDlg.GetFaceName ());
    
    			m_ctrEdit.SetFont(&m_font);			
    
    	}
    
    }
    

    Das anzeigen(klappt), sonst nix !

    regards ShadowEater



  • Hallo zusammen 😉 ,

    also falls es jemand interessiert so klappte es :

    void CThereader0001Dlg::OnFontClicked() 
    {
    
    	CFontDialog		fontDlg;
    	CFont          *m_font = new CFont; 
    
    	if (fontDlg.DoModal() == IDOK)
    	{
    		m_font->CreateFont (fontDlg.GetSize() / 7.25
    							,NULL
    							,0
    							,0
    							,fontDlg.GetWeight ()
    							,fontDlg.IsItalic ()
    							,fontDlg.IsUnderline ()
    							,fontDlg.IsStrikeOut ()
    							,DEFAULT_CHARSET
    							,OUT_DEFAULT_PRECIS
    							,0
    							,DEFAULT_QUALITY
    							,DEFAULT_PITCH
    							,fontDlg.GetFaceName ());
    
    		m_ctrEdit.SetFont(m_font);
    	}
    	delete m_font;
    
    }
    

    Ich weiss aber nicht 100%-tig warum ich CFont auf den Heap schieben muss 😕 😕 😕

    Weiss jemand Rat ?

    Danke für eure Mühe
    ShadowEater


Log in to reply