tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
14
ZUGRIFFE
5530
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von AckiB
    AckiB AckiB ist offline Mitglied Silber
    Registriert seit
    Apr 2004
    Ort
    (NRW)
    Beiträge
    69
    Hi,
    jetzt habe ich ein weiteres Problem:
    Wie bekomme ich den Handle des Windows-Fenster heraus ?

    Ich habe jetzt zwar die Funktion für die Fensterposition, aber die braucht den Handle (hwnd)...

    Public Declare Function GetWindowPlacement Lib "user32" Alias "GetWindowPlacement" (ByVal hwnd As Long, lpwndpl As WINDOWPLACEMENT) As Long

    Ich habe bisher in VB programmiert und ein bisschen C/C++ für Konsole...
    Leider habe ich nur wenig Ahnung, wie man Windows Programme mit C/C++ programmiert.
    In VB hat jedes Fenster die Eigenschaft HWND, aber in C/C++ ?

    danke, Acki
     

  2. #2
    Registriert seit
    Jan 2002
    Ort
    Bayern
    Beiträge
    1.390
    Dabei ist es schon wichtig mit was du programmierst?
    - MFC?
    - reine WinAPI?
    - GTK?
    - QT?
    - zApp?
    - wxWindows?
    - usw...?
    Denn Möglichkeiten gibt es viele.

    Gruß Homer

    P.S. warum muß man eigentlich immer wieder die gleichen Fragen stellen ?
     
    we would change the world if god gave us the source code...
    and remember, science is nothing more than reverse engineering nature...

    Current projects:
    - LdrawConverter

  3. #3
    Avatar von AckiB
    AckiB AckiB ist offline Mitglied Silber
    Registriert seit
    Apr 2004
    Ort
    (NRW)
    Beiträge
    69
    Sorry, aber ich suche grundsätzlich vorher, ob meine Fragen schonmal gestellt wurde...
    Wenn ich nichts finde frage ich halt...
    Und zu diesem Thema habe ich nichts gefunden...

    Wie schon erwähnt bin ich in Cpp - Windows - Programmierung ein Newby...

    Zum Thema: da ich eine API-Funktion als Beispiel angegeben hatte, dachte ich das währe klar...

    Also, ich benutze Dev-C++ unter W2k, erstelle meine GUIs mit FLTK und verwende gerne die Windows-API !

    Ich komme damit auch soweit super zurecht, nur habe ich bei solchen (scheinbar) sehr speziellen Sachen noch ein wenig Probleme!

    So weiß ich z.B. auch noch nicht, wie man einem Fenster ein Icon zuweisen kann (das oben links in der Titelleiste angezeigt wird)...
    Danach habe ich allerdings auch noch nicht im Forum gesucht...

    Sollte jemand einen Thread kennen, in dem meine Fragen schon beantwortet wurde, währe ich sehr dankbar für einen Hinweis (Link) darauf !

    Vielleicht kann mir ja doch jemand helfen...

    CU, Acki
     

  4. #4
    Registriert seit
    Jan 2002
    Ort
    Bayern
    Beiträge
    1.390
    Also, ich benutze Dev-C++ unter W2k, erstelle meine GUIs mit FLTK und verwende gerne die Windows-API !
    Das ist doch der springende Punkt.
    Du kannst allso meine Liste um den Punkt "FLTK" erweitern.
    Du benutzt ein eigenes Framework und nicht direkte WinAPI.
    In diesem Framework, ist irgendwo eine Methode CreateWindow() gekappselt, die wiederum ein HWND zurückliefert.
    Da wirst du aber mit 100% Warscheinlichkeit nicht rankommen.
    Ergo:
    Muss dir dein Framework eine Methode zur Verfügung stellen, um an das zugehörige HWND deines Fensters ranzukommen. Ist dies nicht der Fall, ist das Framework nicht unbedingt das ware (kann ich nicht beurteilen).
    Eleganter wäre es allerdings die Fensterpositionen über das Framework zu verarbeiten.
    Wird das auch nicht unterstützt dann nimm MFC oder sowas.
    Also kann ich dich nur auf die Dokumentation von FLTK verweisen.
    Evtl. kenn das hier ja jemand (ich nicht)

    Gruß Homer
     
    we would change the world if god gave us the source code...
    and remember, science is nothing more than reverse engineering nature...

    Current projects:
    - LdrawConverter

  5. #5
    Avatar von AckiB
    AckiB AckiB ist offline Mitglied Silber
    Registriert seit
    Apr 2004
    Ort
    (NRW)
    Beiträge
    69
    Das hatte ich mir auch gedacht, similar zur VB-Formular-Eigenschaft HWND...
    Leider habe ich in der FLTK-Doku nichts gefunden (die ist auch nicht besonders gut aufgebaut und leider nur auf Englisch)...

    Ein Fenster-Objekt sheint leider bei FLTK keine HWND-Eigenschaft (oder Methode die HWND liefer) zu besitzen...

    Zur Info:
    FLTK steht für "Fast Lightning Tool Kit"
    Dazu gibts einen GUI-Editor der sich Fluid nennt (ich glaube das steht für "Fast Lightning User Interface Designer")

    Das ganze ist ziemlich gut und stellt viele Objekte zur Verfügung!


    thx, Acki
     
    -----------------------------------------------------------------------------
    using Code::Blocks with Win7 home-premium (64bit)
    -----------------------------------------------------------------------------

  6. #6
    Registriert seit
    Jan 2002
    Ort
    Bayern
    Beiträge
    1.390
    Das ganze ist ziemlich gut und stellt viele Objekte zur Verfügung!
    Sieht wohl nicht so aus
    Ich habe das auch mal kurz überflogen, aber nix gefunden wie man an ein HWND rankommt.
    Optional wäre da noch eine API-Funktion FindWindow() was aber eigentlich doof ist, wenn man schon eine "Art" Fensterklasse "an der Hand" hat (über FLTK).
    Also kann ich dir da auch nicht weiter helfen in Bezug auf FLTK, musst weitersuchen, evtl. gibt es da Newsgroups.
    (die ist auch nicht besonders gut aufgebaut und leider nur auf Englisch)
    Das Englische sollte für einen Programmierer keine Hürde sein.

    Gruß Homer
     
    we would change the world if god gave us the source code...
    and remember, science is nothing more than reverse engineering nature...

    Current projects:
    - LdrawConverter

  7. #7
    Avatar von Endurion
    Endurion Endurion ist offline Mitglied Diamant
    Registriert seit
    Apr 2004
    Beiträge
    2.151
    In der Doku stand unter OS-specific issues die folgende Funktion:

    HWND fl_xid(const Fl_Window *)

    Damit sollte es eigentlich klappen.

    Das ist generell das Problem mit plattformübergreifenden Libraries. Irgendwo gibt es doch Unterschiede und die sind in der Normal-Doku nicht drin, sondern meistens im Kleingedruckten.
     

  8. #8
    Registriert seit
    Jul 2003
    Ort
    Duisburg (NRW)
    Beiträge
    1.788
    Das ist generell das Problem mit plattformübergreifenden Libraries. Irgendwo gibt es doch Unterschiede und die sind in der Normal-Doku nicht drin, sondern meistens im Kleingedruckten.
    Das stimmt wahrscheinlich.

    Vielleicht ist das Problem, dass AckiB das Handle eigentlich nur für die WinAPI-Funktion GetWindowPlacement() benötigt. Vielleicht wäre es sinnvoller, in seiner Library entsprechende Funktionen zu suchen, mit denen er dasselbe (Fensterpositionen usw.) herausfinden kann und auf direkten Einsatz der WinAPI zu verzichten. Ich bin sicher, dass das geht, und es hätte den Vorteil, dass sein Code tatsächlich nicht Windows-spezifisch würde.
     
    Chor: "Wir sind der Chor, und wir stimmen zu. Wir stimmen zu, wir stimmen zu, wir stimmen zu."

  9. #9
    Registriert seit
    Jan 2002
    Ort
    Bayern
    Beiträge
    1.390
    @Kachelator, hab ich doch schon geschrieben:
    Eleganter wäre es allerdings die Fensterpositionen über das Framework zu verarbeiten.


    Gruß Homer
     
    we would change the world if god gave us the source code...
    and remember, science is nothing more than reverse engineering nature...

    Current projects:
    - LdrawConverter

  10. #10
    Registriert seit
    Jul 2003
    Ort
    Duisburg (NRW)
    Beiträge
    1.788
    LOL! Das hatte ich überlesen!

    Na ja, doppelt hilft besser!
     
    Chor: "Wir sind der Chor, und wir stimmen zu. Wir stimmen zu, wir stimmen zu, wir stimmen zu."

  11. #11
    Avatar von AckiB
    AckiB AckiB ist offline Mitglied Silber
    Registriert seit
    Apr 2004
    Ort
    (NRW)
    Beiträge
    69
    Original geschrieben von Endurion
    In der Doku stand unter OS-specific issues die folgende Funktion:

    HWND fl_xid(const Fl_Window *)

    Damit sollte es eigentlich klappen.

    Das ist generell das Problem mit plattformübergreifenden Libraries. Irgendwo gibt es doch Unterschiede und die sind in der Normal-Doku nicht drin, sondern meistens im Kleingedruckten.
    Ha !
    Ich habe danach mal in der (HTML-) Doku gesucht und gefunden !
    Jetzt klappt es !

    Danke, manchmal weiß man eben leider nicht, wonach man suchen muss ...

    CU, Acki
     
    -----------------------------------------------------------------------------
    using Code::Blocks with Win7 home-premium (64bit)
    -----------------------------------------------------------------------------

  12. #12
    Avatar von Endurion
    Endurion Endurion ist offline Mitglied Diamant
    Registriert seit
    Apr 2004
    Beiträge
    2.151
    Ich weiss nicht, was du hast:

    Aussagekräftiger als fl_xid geht's ja wohl nicht


    Was Kachelator und Daniel Toplak schon geschrieben haben, stimmt aber. Durch diese eine Funktion ist die ganze Plattformunabhängigkeit fuhutsch. Müsste ja wirklich ein entsprechendes Gegenstück geben; evtl. kann das halt nicht das komplette Repertoire von WindowPlacement.
     

  13. #13
    Registriert seit
    Jul 2003
    Ort
    Duisburg (NRW)
    Beiträge
    1.788
    Aussagekräftiger als fl_xid geht's ja wohl nicht
    Da komme ich nicht mit. fl_xid ist doch nicht besonders aussagekräftig, für sich genommen, oder? Ich würde es für ein Mittel gegen Verstopfung halten. Oder was meintest du?
     
    Chor: "Wir sind der Chor, und wir stimmen zu. Wir stimmen zu, wir stimmen zu, wir stimmen zu."

  14. #14
    Avatar von AckiB
    AckiB AckiB ist offline Mitglied Silber
    Registriert seit
    Apr 2004
    Ort
    (NRW)
    Beiträge
    69
    Original geschrieben von Kachelator
    Da komme ich nicht mit. fl_xid ist doch nicht besonders aussagekräftig, für sich genommen, oder?
    Doch, eigentlich schon...


    unter dem Bereich steht auch, wie man das für Linux und Mac benutzt !


    CU, Acki
     
    -----------------------------------------------------------------------------
    using Code::Blocks with Win7 home-premium (64bit)
    -----------------------------------------------------------------------------

  15. #15
    Avatar von Endurion
    Endurion Endurion ist offline Mitglied Diamant
    Registriert seit
    Apr 2004
    Beiträge
    2.151
    Original geschrieben von Kachelator
    Da komme ich nicht mit. fl_xid ist doch nicht besonders aussagekräftig, für sich genommen, oder? Ich würde es für ein Mittel gegen Verstopfung halten. Oder was meintest du?
    War eigentlich auch sarkastisch gemeint. fl_xid könnte ein Fluch sein, der mir über die Lippen rutscht, wenn ich die Funktion suche. Könnte auch eine chemische Verbindung sein.

    Ich empfehle trotzdem nochmal, evtl. auf fl_xid zu verzichten, und die Windows-Position mit Framework-eigenen Befehlen zu verändern. Ich könnte mir nämlich vorstellen, das FLTK (auch so ein Begriff) auf einem Mac den Befehl fl_xid gar nicht erst enthält.
     

Ähnliche Themen

  1. DllImport C# und HWND
    Von Rawukal im Forum .NET Windows Forms
    Antworten: 3
    Letzter Beitrag: 09.03.10, 13:18
  2. PID aus HWND bestimmen
    Von Kaiser206 im Forum C/C++
    Antworten: 1
    Letzter Beitrag: 17.07.08, 20:37
  3. Was ist hWnd?
    Von bigb702 im Forum .NET Windows Forms
    Antworten: 1
    Letzter Beitrag: 04.04.08, 14:55
  4. CWnd und HWND
    Von SCIPIO-AEMILIANUS im Forum C/C++
    Antworten: 0
    Letzter Beitrag: 15.06.07, 13:52
  5. string to HWND
    Von Thomasio im Forum C/C++
    Antworten: 4
    Letzter Beitrag: 25.05.07, 23:00