Static Text... Farbe..Grösse ?



  • Hi

    ich hab ein label vom typ Static Text (Text Control) Feld. Hab jedoch nichts darüber gefunden wie ich die

    Grösse
    Farbe
    einfügen eines Absatz bzw. neuer Zeile

    des Textes, das ich anzeigen möchte, ändern kann.

    Irgendeiner schon sowas gemacht.

    Indian



  • Servus,

    Schriftart, -größe:

    CFont font;
    font.CreateFont(
    		12,                        // nHeight
    		0,                         // nWidth
    		0,                         // nEscapement
    		0,                         // nOrientation
    		FW_NORMAL,                 // nWeight
    		FALSE,                     // bItalic
    		FALSE,                     // bUnderline
    		0,                         // cStrikeOut
    		ANSI_CHARSET,              // nCharSet
    		OUT_DEFAULT_PRECIS,        // nOutPrecision
    		CLIP_DEFAULT_PRECIS,       // nClipPrecision
    		DEFAULT_QUALITY,           // nQuality
    		DEFAULT_PITCH | FF_SWISS,  // nPitchAndFamily
    		"Arial");				   // lpszFacename
    
    m_ctrStatic.SetFont(&font);
    

    Dafür musst du einen neuen Font anlegen und dann dem Control mit SetFont() zuweisen. m_ctrStatic ist die Membervar von einem Static Ctrl.

    Schriftfarbe, Hintergrundfarbe:
    .h

    public:
       afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
    

    .cpp

    BEGIN_MESSAGE_MAP(CTestProjectDlg, CDialog)
    	ON_WM_PAINT()
    	ON_WM_QUERYDRAGICON()
    	//}}AFX_MSG_MAP
    	ON_WM_CTLCOLOR()
    END_MESSAGE_MAP()
    
    .
    .
    .
    
    HBRUSH CTestProjectDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
    {
    	HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
    
    	if (pWnd->GetDlgCtrlID()==IDC_STATIC_TEST)
    	{
    		pDC->SetTextColor(RGB(255,0,0)); //Textfarbe
    		pDC->SetBkMode(TRANSPARENT);
    		HBRUSH B = CreateSolidBrush(RGB(192,192,192)); //Hintergrundfarbe
    		return (HBRUSH) B;
    	}
    
    	return hbr;
    }
    

    IDC_STATIC_TEST ist hier die ID des Staticfeldes. Du kannst um Controls einzufärben, die MSG WM_CTLCOLOR abfangen. Das zeigt auch das Bsp.

    Absatz einfügen geht normalerweise mit -> \r\n
    \r = Carriage Return
    \n = New Line

    Viel Spaß
    *winke*
    Hellsgore



  • jetz bleibt nur noch das problem mit der farbe. muhkuh, dein link hab ich getestet-leider hat es nicht so bei mir geklappt. wenn ich anstatt der textfarbe die hintergrunddfarbe der jeweiligen Textfelder ändern könnte, wäre mir auch schon geholfen.

    hab auch echt nirgens was dazu gefunden wie ich jetz bei dem cstring die textfarbe oder die hintergrundfarbe ändern kann

    mfg, TFTS


Anmelden zum Antworten