Builder.cz - Informacni server o programovani

Odběr fotomagazínu

Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!

 

Zadejte Vaši e-mailovou adresu:

Kamarád fotí rád?

Přihlas ho k odběru fotomagazínu!

 

Zadejte e-mailovou adresu kamaráda:



DT_EXPANDTABS

Seznam témat     Nová odpověď

Přihlásit se     Registrace     Zapomenuté heslo

Re: DT_EXPANDTABS

Autor: pavel777

16:40:31 26.06.2011

Tak super - MM_TEXT OK, MM_HIMETRIC taky, ale jak dám
dc.SetMapMode(MM_ISOTROPIC);
dc.SetWindowExt(2540, 2540); // milimetr 100 (jako MM_HIMETRIC)
dc.SetWindowOrg(0, 0); // rolety
dc.SetViewportExt(100, 100); // zoom - tady 100%
int p = dc.GetDeviceCaps(LOGPIXELSX);
dc.SetViewportExt(p, p);

Na XP a dřív to takto bylo vždycky OK, mohlo by v tomhle být něco špatně?

Zajímavostí na XP ale je, že když spustím kód od tebe, tak se délka mezery mění v závislosti na velikosti okna, při zmenšování se zmenšuje i mezera a když se písmena přiblíží moc, tak to zase skočí na tu stanovenou délku. Dělá to jen při použití DT_CENTER, s DT_LEFT je to OK. Rozumí tomu někdo? :-)

Citovat příspěvek

 

Re: DT_EXPANDTABS

Autor: RadekChalupa

12:57:13 25.06.2011

No nevím, ale mě tohle ve Windows7 funguje, opravdu se nastaví větší mezera na místě tabelátoru:
[code]
LRESULT OknoHlavni::OnPaint(UINT, WPARAM, LPARAM, BOOL&)
{
PAINTSTRUCT ps;
HDC hdc = BeginPaint(&ps);
RECT rect;
GetClientRect(&rect);
DRAWTEXTPARAMS dtp;
ZeroMemory(&dtp, sizeof(dtp));
dtp.cbSize = sizeof(DRAWTEXTPARAMS);
dtp.iTabLength = 25;
DrawTextExW(hdc, L"abc\tdef", -1, &rect, DT_SINGLELINE | DT_EXPANDTABS | DT_CENTER | DT_VCENTER | DT_TABSTOP, &dtp);
EndPaint(&ps);
return 0;
}
[/code]


Radek Chalupa

- vývoj software na zakázku
- školení programování (C/C++, Win API, ATL, COM, ActiveX, C#, NET Framework, MFC)
http://www.radekchalupa.cz

Citovat příspěvek

 

Re: DT_EXPANDTABS

Autor: pavel777

12:05:52 25.06.2011

Tak fakt bomba - nastavení pomocí DT_TABSTOP nic nezmění. DrawText na Win7 to co je za \t vynechá a s DT_WORDBREAK dokonce tiskne na novým řádku :-( DrawTextEx dělá to samý. To fakt nezbyde než v cyklu pro taby vynechávat místo ručně?

Citovat příspěvek

 

DT_EXPANDTABS

Autor: pavel777

18:41:32 24.06.2011

Zdravím všechny.

Nesetkali jste se někdo s problémem s DrawText s DT_EXPANDTABS na Win7? Na XP v pohodě, ale zde se mi to co je za tabelátorem netiskne a když dám DT_CALCRECT vrátí se mi nesmyslně vysoká hodnota.

Zkouším pátrat směrem jestli není nastavena default hodnota na 8, ale nikde ani zmínka o tom jak hodnotu zjistit nebo nastavit. Fakt to tam není nebo hledám tak špatně?

Díky Pavel

Citovat příspěvek

 

 

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: