Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    C - CreateFont e TextOutA

    Ciao,
    io ho un programma che legge alcuni parametri da un file txt e poi dovrebbe mandare in stampa quello che è stato letto.
    Il mio problema è che la prima riga la stampa correttamente leggendo tipo carattere, dimensione,font.
    Ma la seconda non riesco a capire come calcolare lo spazio tra le due righe.
    textLeft = 61000; // Coordinata X del testo
    textTop = 101300; // Coordinata Y del testo
    strcpy (textTesto, "Prova riga 1");
    fontPoints = 20; // Altezza del carattere: si trova sul file lst in points
    OldTextColor = SetTextColor (hdcPrint, clrBlack); // Colore testo:: si trova sul file lst
    if (OldTextColor == CLR_INVALID)
    stat_code = GetLastError();
    fontPixels = -(fontPoints * MM_1000_INCH) / 72; //
    hFont = CreateFont (fontPixels, 0, 0, 0, FALSE, FALSE, FALSE, FALSE, ANSI_CHARSET, OUT_DEFAULT_PRECIS,
    CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH | FF_SWISS, TEXT("Times New Roman"));

    if (hFont == NULL)
    stat_code = GetLastError();
    else
    {
    OldFont = (HFONT)SelectObject (hdcPrint, hFont);
    if (OldFont == NULL)
    stat_code = GetLastError(); // Forse l'errore non si trova così ...
    esito = TextOutA (hdcPrint, textLeft, textTop, textTesto, strlen(textTesto));

    strcpy (textTesto, "Prova riga 2");
    fontPoints = 12;
    fontPixels = -(fontPoints * MM_1000_INCH) / 72;
    hFont = CreateFont (fontPixels, 0, 0, 0, FALSE, FALSE, FALSE, FALSE, ANSI_CHARSET, OUT_DEFAULT_PRECIS,
    CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH | FF_ROMAN, TEXT("Arial"));
    OldFont = (HFONT)SelectObject (hdcPrint, hFont);
    if (OldFont == NULL)
    stat_code = GetLastError();
    else
    esito = TextOutA (hdcPrint, textLeft, ??, textTesto, strlen(textTesto));
    Nel secondo TextOutA non so da dove iniziare a stampare....
    Help!

  2. #2
    Puoi usare la GetTextMetrics per sapere l'altezza di una riga con il font corrente, o la GetTextExtentPoint32 per calcolare le dimensioni del testo renderizzato.
    Amaro C++, il gusto pieno dell'undefined behavior.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.