Imam dvije funkcije.
Kada zakomentiram u funkciji IspisiText italic i bold, kvadrati kolona se ispisuju savršeno...ali kad ukljucim bold i italic kvadrati se ne ispisuju,samo ponekad prvi!?
Visina i sirina slova nikad ne prelaze velicinu kvadratica a i da prelaze nema veze jer bi se trebali ispisati preko njega...
Kako ovo rješiti?
//Ovako radi!!!
IspisiText()
{
...
LOGFONT lf;
::ZeroMemory (&lf, sizeof (lf));
lf.lfHeight = nVelicina;
//if(bItalic)
//lf.lfItalic = TRUE;
//if(bBold)
//lf.lfWeight = FW_BOLD;//podebljava...
memcpy(lf.lfFaceName, strFont, sizeof(strFont));
::lstrcpy (lf.lfFaceName, _T (strFont));
lf.lfCharSet = EASTEUROPE_CHARSET;
...
}
///////////////// ISPIS KOLONA ///////////////////////////
void CMyView::IspisiKolone(CDC* pDC, int nX, int nY)
{
CPen pen(NULL, 1, RGB(0, 0, 0));
CPen *pOldPen = pDC->SelectObject(&pen);
int tmpX = nX;
//ISPIS KOLONA
m_rectKolona1.SetRect(nX+5, nY, nX+50, nY+25);
pDC->Rectangle(m_rectKolona1);
IspisiText(pDC,tmpX, nY, "Br.", "Times New Roman", 110, TRUE, FALSE, TRUE, m_rectKolona1);
m_rectKolona2.SetRect(nX+50,nY,nX+200,nY+25);
pDC->Rectangle(m_rectKolona2);
IspisiText(pDC,tmpX, nY, "Jmbg", "Times New Roman", 110, TRUE, FALSE, TRUE, m_rectKolona2);
m_rectKolona3.SetRect(nX+200,nY,nX+500,nY+25);
pDC->Rectangle(m_rectKolona3);
IspisiText(pDC,tmpX, nY, "Ime", "Times New Roman", 110, TRUE, FALSE, TRUE, m_rectKolona3);
m_rectKolona4.SetRect(nX+500,nY,nX+700,nY+25);
pDC->Rectangle(m_rectKolona4);
IspisiText(pDC,tmpX, nY, "Prezime", "Times New Roman", 110, TRUE, FALSE, TRUE, m_rectKolona4);
m_rectKolona5.SetRect(nX+700,nY,nX+990,nY+25);
pDC->Rectangle(m_rectKolona5);
IspisiText(pDC,tmpX, nY, "Godina rođenja", "Times New Roman", 110, TRUE, FALSE, TRUE, m_rectKolona5);
pDC->SelectObject(pOldPen);
}
//////////////////// ISPISI TEKST /////////////////
//Kad uklucim bold i italic ne crta kvadratice...
void CMyView::IspisiText(CDC* pDC, int nX, int nY, const CString& strText,const CString& strFont, int nVelicina, BOOL bBold, BOOL bItalic, BOOL bCentar, CRect rect)
{
LOGFONT lf;
::ZeroMemory (&lf, sizeof (lf));
lf.lfHeight = nVelicina;
if(bItalic)
lf.lfItalic = TRUE;
if(bBold)
lf.lfWeight = FW_BOLD;//podebljava...
memcpy(lf.lfFaceName, strFont, sizeof(strFont));
::lstrcpy (lf.lfFaceName, _T (strFont));
lf.lfCharSet = EASTEUROPE_CHARSET;
CFont font;
font.CreatePointFontIndirect (&lf);
CFont *pOldFont = pDC->SelectObject(&font);
if(bCentar)
pDC->DrawText(strText, -1, &rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER);
else
pDC->TextOut(nX, nY, strText);
pDC->SelectObject(pOldFont);
}
escape::