Abhängigkeiten von der Auflösung des Monitors



  • Hallo Zusammen,

    ich hatte testweise die Auflösung meines Monitors geändert und festgestellt, dass meine Dialoge, wie sie jetzt per Resourceneditor definiert sind, teilweise nicht ordentlich, da zu groß oder zu klein, angezeigt werden. Für die Main-Prozedur, die auch das Menü enthält ist alles Okay, da ich dort mit System-Metrics gearbeitet habe. Wie funktioniert das denn für die Dialoge mit all ihren Steuerelementen. Muss ich da jeden Dialog und innerhalb des Dialoges jedes Steuerelement in Abhängigkeit von der Bildschirmauflösung erstellen???
    Oder wie macht man das im Allgemeinen???

    Vielleicht weiß jemand Rat???

    Gruß

    Oliver



  • Muss ich da jeden Dialog und innerhalb des Dialoges jedes Steuerelement in Abhängigkeit von der Bildschirmauflösung erstellen???

    Genau! Du musst einfach alles in Relation mit der aktuellen Bildschirmauflößung machen.
    Also du sagtst praktisch der Button xy ist nicht 50 Pixel lang sondern hat 10% der Länge des Dialoges, welcher beispielsweise 30% der Breite vom Bildschirm hat...usw

    Mit GetSystemMetrics(..) findest du die Auflösung raus... 😉 😉
    Viel Spass

    cu para
    😃



  • @Para,

    Danke für Deine Antwort. Wie sieht das denn aus, wenn ich mit Resourceneditor (VC++) arbeite? Da müßte es doch Befehle geben, wie zum Beispiel Handle auf ein Steuerelement und dann Steuerelement Größe ändern. SendMessage?

    Gruß

    Oliver



  • Also:
    nehmen wir an dein Dialog heist ID_DLG_MAIN und ein Textfeld darauf heist ID_TXT_NAME.

    In der Nachrichtenschleife von dem Dialog machst du unter WM_SIZE:

    int cx = GetSystemMetrics(SM_CXSCREEN);// Auflösung bekommen
    int cy = GetSystemMetrics(SM_CYSCREEN);// --------"---------
    

    dann Dialog setzen

    SetWindowPos(hDlg, 0, 0, 0.5*cx, 0.3*cy, SWP_NOMOVE);
    

    dann mit GetDlgItem(...) das Handle des Feldes ID_TXT_NAME holen und genauso verfahren...

    so müsste es normal gehen...

    [edit]

    The GetDlgItem function retrieves the handle of a control in the specified dialog box. 
    
    HWND GetDlgItem(
    
        HWND hDlg,  // handle of dialog box
        int nIDDlgItem  // identifier of control
       );   
    
    Parameters
    
    hDlg
    
    Identifies the dialog box that contains the control. 
    
    nIDDlgItem
    
    Specifies the identifier of the control to be retrieved. 
    
    Return Values
    
    If the function succeeds, the return value is the window handle of the given control. 
    If the function fails, the return value is NULL, indicating an invalid dialog box handle or a nonexistent control.
    

    [/edit]

    cu para
    😃

    [ Dieser Beitrag wurde am 25.11.2002 um 15:40 Uhr von paranoiac.org editiert. ]


Anmelden zum Antworten