Ik zit met het volgende en ik hoop dat er iemand hier wat meer over kan vertellen.
Ik ben bezig met het tekenen van tekst op een canvas (client area van een form) met behulp van de Windows API (GDI). De tekst dient altijd relatief gelijk geschaald te zijn met het window waar de tekst op staat.
Voorbeeld : als ik een form heb die exact vierkant is (op een bepaalde resolutie) en daar daat een tekst op (font type niet zo belangrijk, het zijn wel TTF of OpenType fonts) en ik verklein het scherm zodat deze de helft kleiner wordt in hoogte, dan moet de tekst gelijk meeschalen zodat deze ook de helft in hoogte wordt verkleind. Uiteraard moet de tekst (het font) zowel in hoogte als breedte meeschalen, relatief aan het form.
Het tekenen van tekst, het creeren van fonts en het bepalen van window groottes en omgaan met device contexts is geen probleem, echter het juiste font aanmaken om te selecteren in de device context lukt me niet. Het font lijkt altijd met stapjes te schalen, bijvoorbeeld 6, 9, 11 en 12 punt stappen. Het lijkt erop dat er een fixed font point groote wordt gebruikt.
Ik kan het mis hebben, maar ik had begrepen dat TrueType fonts (en de nieuwe OpenType) in elke gewenste grootte getekend kan worden en niet alleen in de fixed physical font grootes zoals bijvoorbeeld 8,10 en 12 punten.
MSDN is erg onduidelijk, ik heb uiteraard zelf wat info bij elkaar proberen te sprokkelen.
Hoe kan ik nu op een form (device context van de client) een tekst tekenen in exact het juiste font in breedte en hoogte ?
Zijn er wellicht ook omreken formules die obv een resolutie instelling of relatieve coordinaten de font settings kunnen uitrekenen ?
Het betreft hier pure WinApi (geen MFC) dat geïmplementeerd zou kunnen worden in C++.
Ik ben bezig met het tekenen van tekst op een canvas (client area van een form) met behulp van de Windows API (GDI). De tekst dient altijd relatief gelijk geschaald te zijn met het window waar de tekst op staat.
Voorbeeld : als ik een form heb die exact vierkant is (op een bepaalde resolutie) en daar daat een tekst op (font type niet zo belangrijk, het zijn wel TTF of OpenType fonts) en ik verklein het scherm zodat deze de helft kleiner wordt in hoogte, dan moet de tekst gelijk meeschalen zodat deze ook de helft in hoogte wordt verkleind. Uiteraard moet de tekst (het font) zowel in hoogte als breedte meeschalen, relatief aan het form.
Het tekenen van tekst, het creeren van fonts en het bepalen van window groottes en omgaan met device contexts is geen probleem, echter het juiste font aanmaken om te selecteren in de device context lukt me niet. Het font lijkt altijd met stapjes te schalen, bijvoorbeeld 6, 9, 11 en 12 punt stappen. Het lijkt erop dat er een fixed font point groote wordt gebruikt.
Ik kan het mis hebben, maar ik had begrepen dat TrueType fonts (en de nieuwe OpenType) in elke gewenste grootte getekend kan worden en niet alleen in de fixed physical font grootes zoals bijvoorbeeld 8,10 en 12 punten.
MSDN is erg onduidelijk, ik heb uiteraard zelf wat info bij elkaar proberen te sprokkelen.
Hoe kan ik nu op een form (device context van de client) een tekst tekenen in exact het juiste font in breedte en hoogte ?
Zijn er wellicht ook omreken formules die obv een resolutie instelling of relatieve coordinaten de font settings kunnen uitrekenen ?
Het betreft hier pure WinApi (geen MFC) dat geïmplementeerd zou kunnen worden in C++.
Intel i9-9900K | MSI MPG Z390 Gaming Pro Carbon | MSI RTX 2080Ti Gaming X Trio | Ballistix Sport LT (32GB) | MSI Optix MAG274QRF-QD 1440p | Samsung 970 EVO Plus (2TB) | NZXT Kraken X52 | Valve Index | Fractal Design R6 | Synology DS420j