none
Control Size anhand von Font - Größe ausrechnen RRS feed

  • Frage

  • Hallo,
    wie kann ich z.b. die Größe einer ComboBox / Editbox ausrechnen, wenn ich nur den Font zur Hand habe ?
    Gibt's dafür irgendwo Funktionen ?
    Grüße
    Alex
    Montag, 11. Mai 2009 11:22

Antworten

  • Nun ja, ein Control wird so groß wie Du es nun mal möchtest ;).

    Wenn Du meinst wie groß man ein Edit Control gemäß Styleguides macht ist das eine andere Frage.
    Das Ganze rechnet sich am einfachsten in DLUs (Dialog Base Units)

    Die DLUs für einen Font bekommst Du so:
    http://support.microsoft.com/kb/125681/en-us

    Ist der Font der gesetzte Font des aktuellen Fensters (Dialogs), dann kannst Du einfach MapDialogRect verwenden um die Werte für eine DLU Einheit zu bekommen, oder wie nachfolgend beschrieben Daten umzurechnen.

    Grundregel Edit Control mit Rahmen: Höhe = 12DLUs, Weite = (Zeichenanzahl+2)*4
    Grundregel Edit Control ohne Rahmen: Höhe = 8DLUs, Weite = Zeichenanzahl*4
    Combobox Control: Höhe = Was immer Du willst (wobei minimale Höhe=14 DLUs, Zeilenhöhe=8DLUs, d.h. 10 Sichtbare Zeilen = 14+10*8 DLUs), Weite wie Edit


    Martin Richter -- MVP for VC++ [Germany] -- http://blog.m-ri.de
    Montag, 11. Mai 2009 12:34
    Moderator
  • Doch gefunden:
    http://msdn.microsoft.com/en-us/library/aa511258.aspx
    besonders:
    http://msdn.microsoft.com/en-us/library/aa511440.aspx

    Das sind auch nur so ca. 500 Seiten... ;)
    Da findest Du auch so etwas wasich hier beschrieben habe, obwohl nach dieser Doku ein Edit Control jetzt 14DLUs hat... na ja. Ich bleibe bei 12 und es ist auch gut.
    Siehe hier als Sample: http://msdn.microsoft.com/en-us/library/aa511494.aspx#sizing
    Martin Richter -- MVP for VC++ [Germany] -- http://blog.m-ri.de
    Montag, 11. Mai 2009 13:14
    Moderator

Alle Antworten

  • Nun ja, ein Control wird so groß wie Du es nun mal möchtest ;).

    Wenn Du meinst wie groß man ein Edit Control gemäß Styleguides macht ist das eine andere Frage.
    Das Ganze rechnet sich am einfachsten in DLUs (Dialog Base Units)

    Die DLUs für einen Font bekommst Du so:
    http://support.microsoft.com/kb/125681/en-us

    Ist der Font der gesetzte Font des aktuellen Fensters (Dialogs), dann kannst Du einfach MapDialogRect verwenden um die Werte für eine DLU Einheit zu bekommen, oder wie nachfolgend beschrieben Daten umzurechnen.

    Grundregel Edit Control mit Rahmen: Höhe = 12DLUs, Weite = (Zeichenanzahl+2)*4
    Grundregel Edit Control ohne Rahmen: Höhe = 8DLUs, Weite = Zeichenanzahl*4
    Combobox Control: Höhe = Was immer Du willst (wobei minimale Höhe=14 DLUs, Zeilenhöhe=8DLUs, d.h. 10 Sichtbare Zeilen = 14+10*8 DLUs), Weite wie Edit


    Martin Richter -- MVP for VC++ [Germany] -- http://blog.m-ri.de
    Montag, 11. Mai 2009 12:34
    Moderator
  • Hallo,

    ungenaue Frage meinerseits, aber ich möchte die Größe gemäß Styleguide ausrechnen.
    Wo finde ich denn die 'Grundregeln' ?

    Alex
    Montag, 11. Mai 2009 12:40
  • Die Regeln habe ich Dir oben schon beschrieben, siehe meine Antwort.

    Das ist ein richtiges Buch!
    Die Style Guides finde ich aktuell nicht bei MSDN. Komisch... aber über Google findest Du das Buch auch auch.
    Such einfach mal nach: "Official Guidelines for User Interface Developers and Designers"

    Du wirst einen 400 Seiten Schmöcker finden.
    Martin Richter -- MVP for VC++ [Germany] -- http://blog.m-ri.de
    Montag, 11. Mai 2009 13:09
    Moderator
  • Doch gefunden:
    http://msdn.microsoft.com/en-us/library/aa511258.aspx
    besonders:
    http://msdn.microsoft.com/en-us/library/aa511440.aspx

    Das sind auch nur so ca. 500 Seiten... ;)
    Da findest Du auch so etwas wasich hier beschrieben habe, obwohl nach dieser Doku ein Edit Control jetzt 14DLUs hat... na ja. Ich bleibe bei 12 und es ist auch gut.
    Siehe hier als Sample: http://msdn.microsoft.com/en-us/library/aa511494.aspx#sizing
    Martin Richter -- MVP for VC++ [Germany] -- http://blog.m-ri.de
    Montag, 11. Mai 2009 13:14
    Moderator
  • Cool !
    In dem pdf steht alles was man braucht.
    In der MSDN Library November 2008 finde ich die Infos nicht...
    Allerdings hätte ich auch nicht nach 'Windows User Experience Interaction Guidelines' gesucht...
    Vielen Dank.

    Alexander Golde
    Donnerstag, 14. Mai 2009 12:30