C++ SetFont() Fehler ?
-
Was ist hier falsch?
void CMaxiFontViewerDlg::SetFont()
{
CRect rRect;
int iHeight;
if (m_Name !="")
{
m_ctlText.GetWindowRect(&rRect);
iHeight = rRect.top - rRect.bottom;
if (iHeight < 0)
iHeight = 0- - iHeight;
m_fSamp.Detach();
m_fSamp.CreateFont((iHeight - 5), 0, 0, 0, FW_NORMAL,
0, 0, 0, DEFAULT_CHARSET, OUT_CHARACTER_PRECIS,
CLIP_CHARACTER_PRECIS, DEFAULT_QUALITY, DEFAULT_PRECIS |
FF_DONTCARE, m_Name);
m_ctlText.SetFont(&m_fSamp);
}
}
-
Daran wird es wohl kaum liegen, aber dieses
if (iHeight < 0) iHeight = 0- - iHeight;
bewirkt doch eigentlich überhaupt nichts, oder?
Denn das bedeutet ja das gleiche wie iHeight = 0 + iHeight, also iHeight = iHeight.
Eddie.
-
Also erstens heißt ees nicht height = 0 - - height, und übrigens auch nicht height = 0- height. Einfach ist doch height = -height, oder height *= -1, oder sowas. Ist einfach küzer. Außerdem ist es auch gar nicht unbeding tnötig, es hier zu benutzen. DA die Koordinaten Standardmäßig von oben nach unten ansteigen (oben ist der y-Wert 0), wäre es sinnvoler zu rechnen :
iHeight = rRect.bottom - rRect.top;
und nicht andersherum. Und dann dürte man auch keine negativen ERgebnisse kriegen.
-
Hallo,
vergleiche mal damit:m_fMyFont.Detach();
m_fMyFont.CreateFont(20,0,0,0,FW_NORMAL,0,0,0,DEFAULT_CHARSET,
OUT_CHARACTER_PRECIS,CLIP_CHARACTER_PRECIS,
DEFAULT_QUALITY,DEFAULT_PITCH|FF_DONTCARE,
"MS Sans Serif");
------------------------------------
m_ctlAuswahl.SetFont(&m_fWahlFont);
m_strAuswahl = "Der Text";
UpdateData(FALSE);MfG
Daniel
-
@<Daniel> das habe ich gebraucht! thx