Dialogfenster-Groesse stimmt nicht: 100x100 soll 181x181 ist

  • hallo,
    wenn ich mit Embedded Visual C++ 4.0 für das NETDUC8 eine Dialogbasierte Anwendung schreibe stimmen die Dialog- und Componenten-Dimensionen auf dem Display des NETDCU8 nicht mit denen im Dialog-Editor im eVCC überein. Also ich erstelle ein Dialogfenster mit Groesse 100 x 100 Pixel im eVCC und auf dem Display des NETDCU ist es dann 181 x 181 Pixel. Kann mir jemand helfen? Alles ist zu um den Faktor 1,81 gross.
    Erstelle ich eine simple Win32-Anwendung mit einem Fenster stimmen die Dimensionen. Es muss also an der Resoucen-Umsetzung liegen. Ich kann auch die Groesse des Dialogfensters auf die
    Groesse bringen, die mir vorschwebt mit SetWindowPos(bla). Aber bei mehreren (vielen) Steuerelementen ist das wohl nicht der Weg der Wahl.


    Board: NETDCU8
    Display: Hitachi TX14D12
    Displaymode: 100 (Einstellungen gemaess der Anleitung auf der CD des Starterkids)

  • Hallo,
    leider wird für C++ Programme im Resourceeditor (EVC++ und VS200x) die Größe nicht in Pixel sondern in logischen Einheiten angegeben (wenn Sie eine .NET Applikation erstellen, können Sie direkt Pixel angeben)! Deshalb würde ich empfehlen, den Dialog und die zugehörigen Kontrols mit "SetWindowPos()" größenmäßig einzustellen und zu fixieren. Das ganze können Sie in "CMyDlg::OnInitDialog()" dürchführen.

    F&S Elektronik Systeme GmbH
    As this is an international forum, please try to post in English.
    Da dies ein internationales Forum ist, bitten wir darum, Beiträge möglichst in Englisch zu verfassen.

  • Hallo,
    das ist natürlich bedauerlich. kann man eventuell die logischen Einheiten ändern. Mein LCD vom NETDCU8 hat 32 x 240 Pixel und mein PC-TFT hat 1600 x 1000. Ich muss hier im eVCC den Dialog in der Groesse einer Briefmarke editiern, der auf dem LCD vom NETDCU8 die volle Groesse hat. Wenn wenn das Ding noch etwas kleiner wäre, könnte ich den TFT undter ein Mikroskop legen. SetWindowPos(bla) hatte ich schon genommen.
    danke

  • Nein, wie der Name EVC++ schon sagt, gehen nur native C- und C++-Programme. Für .NET ist das große Visual Studio erforderlich.


    Hier noch ein Link, wo das mit den logischen Einheiten der Dialoge (DLU=DialogUnits) erklärt wird. Denn auch wenn das Umrechnen etwas lästig ist, macht diese Device-Unabhängigkeit schon ihren Sinn.


    <!-- m --><a class="postlink" href="http://msdn.microsoft.com/en-us/library/bb847924.aspx">http://msdn.microsoft.com/en-us/library/bb847924.aspx</a><!-- m -->


    Mit freundlichen Grüßen,


    H. Keller

    F&S Elektronik Systeme GmbH
    As this is an international forum, please try to post in English.
    Da dies ein internationales Forum ist, bitten wir darum, Beiträge möglichst in Englisch zu verfassen.

  • hallo,
    vielleicht reden wir an einander vorbei. Mein Dialogfenster von 320 x 240 Pixel im WinCE ist auf meinem TFT im eVCC ganze 182 x 136 Pixel gross! Also so gross wie eine Briefmarke. Die Schriftgroesse muss ich auf 4 setzen um sie der im Taskbar anzupassen. Ein vernuenftiges Editieren eines solchen Gebildes ist nicht moeglich. Woher "weiss" jetzt eVCC welche Groessenverhaeltnisse auf meinem WinCE herschen? Wo kann man das aendern/anpassen (denn da stimmt was nicht)? Wenn ich die mir Screeshots auf der CD im Starterkid ansehe, sind dort die Dialogfenster auch viel groesser. Ich habe auch schon mal WinCE-Anwendungen für ein PDA geschrieben und da war alles gross genug zum Editieren.
    danke (1000 x)

  • Quote from "mario2000"

    Mein Dialogfenster von 320 x 240 Pixel im WinCE ist auf meinem TFT im eVCC ganze 182 x 136 Pixel gross!


    Meinen Sie den Resource-Editor? Sind Sie sicher, dass das 182x136 Pixel sind? Und nicht 182x136 DLUs?


    Quote

    Die Schriftgroesse muss ich auf 4 setzen um sie der im Taskbar anzupassen.


    Das kann ggf. die Ursache für das Problem sein. Die DLUs sind ja abhängig von der Schriftgröße. Bei so einer kleinen Schrift wird der Dialog dann vermutlich auch sehr klein.


    Quote

    Woher "weiss" jetzt eVCC welche Groessenverhaeltnisse auf meinem WinCE herschen?


    Es weiß es gar nicht. Es erzeugt die Dialoge mit DLUs und beim Ausführen des Programms später auf dem Zieldevice, also zur Laufzeit, werden die DLUs dann in Displaypixel umgerechnet, abhängig von der Schriftgröße.


    Quote

    Wenn ich die mir Screeshots auf der CD im Starterkid ansehe, sind dort die Dialogfenster auch viel groesser.


    Ja, so einen krassen Unterschied kennen wir sonst nicht. Kann es sein, dass Ihr PC eine sehr hohe Displayauflösung hat? Üblich sind 75dpi oder 96dpi. Aber wenn Sie z.B. 120dpi haben, dann kann so ein Dialog schon sehr klein aussehen.


    Mit freundlichen Grüßen,


    H. Keller

    F&S Elektronik Systeme GmbH
    As this is an international forum, please try to post in English.
    Da dies ein internationales Forum ist, bitten wir darum, Beiträge möglichst in Englisch zu verfassen.

  • Hallo,


    Ich schreibe von meinen Problemen im Dialog-Editor von Embedded Visual C++ 4.0.
    182x136 DLUs, das was unten rechts angezeigt wird. (in Pixeln aber fast das gleiche)


    Die Schrift meines erstellten Dialogs im Dialogeditor ist schon verschwommen, weil so klein.


    Heute früh ist mir dann auch die Erkenntnis gekommen mal die DPIs zu ändern.
    Mit einer Einstellung für Blinde kann man zu minstest halbwegs arbeiten.
    Meine Grundeinstellung war 96 DPI, zum Editieren nehme ich 200%.


    Eines ist noch komisch (habe ich aber erst heute bemerkt), wenn ich diesen kleinen Umschalter unten links zum Testen der Resouce (Crtl+T) betaetige stimmen die Dimensionen des erzeugten Dialogs. (366 x 273 Pixel)


    Wo steht eigentlich im NETDCU vieviel DPI sein Display hat???


    Wenn noch jemandem etwas einfaellt, wo ich den Schraubenschluessel ansetzen koennte waere ich sehr dankbar.


    mfg Mario2000