Probleme mit Dialog Units und Style-Vorgaben von MS



  • Hi!

    Ich möchte mich gerne na die Style-Vorgaben von Microsoft halten:
    http://msdn.microsoft.com/en-us/library/ms997619.aspx

    Jetzt habe ich mal im Petzold nachgeschlagen wie man mit GetDialogBaseUnits umgeht und MulDiv. Herausgekommen ist folgendes:

    const int cxChar = LOWORD (GetDialogBaseUnits ());
    const int cyChar = HIWORD (GetDialogBaseUnits ());
    
    const int left   = MulDiv (0,  cxChar, 4);
    const int right  = MulDiv (50, cxChar, 4); // 50 DLU Breit
    const int top    = MulDiv (0,  cyChar, 8);
    const int bottom = MulDiv (14, cyChar, 8); // 14 DLU Hoch.
    
    CreateWindow (_T("button"), 
                  _T ("Testbutton"), 
                  WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
                  left,     // X
                  top,      // Y
                  right,    // Breite
                  bottom,   // Höhe
                  hwnd,
                  NULL,
                  ((LPCREATESTRUCT) lParam)->hInstance,
                  NULL);
    

    Soweit sogut, das klappt auch wunderbar. Wenn ich mir jetzt jedoch die Maße des angezeigten Buttons mit dem eines Buttons von Microsoft vergleiche (z. B. von den Assistenten oder bei "Ausführen...") sind da doch schon paar ordentliche Dimensionen Unterschied 😞

    Ich denke, dass die Angaben bei MulDiv für den Denominator nicht korrekt sind, die ich aus dem Petzold habe.

    Kann mir da jemand weiterhelfen?

    Gruß,
    Easy Coder.



  • Hat sich erledigt, ich musste nur die Abmessungen der benutzten Font nehmen und dann waren auch die 4:8-Werte richtig 🙂


Anmelden zum Antworten