Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Fenster neu zeichen lassen

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Nitroxis



Anmeldungsdatum: 27.02.2008
Beiträge: 300
Wohnort: Irgendwo...

BeitragVerfasst am: 11.10.2008, 19:41    Titel: Fenster neu zeichen lassen Antworten mit Zitat

Hi
Wie kann ich mit API-Befehlen soetwas wie bei VB die "Refresh" Funktion bewirken?
Ich habe ein Programm geschrieben womit man die aufschrift von Steuerelementen verändern kann (Get/-SetWindowText). Und wenn ich nun den Text eines Buttons ändere, wird die veränderung erst sichtbar, wenn dieser vom Programm neu gezeichnet wird.
Geht das mit API?
Danke schonmal im vorraus
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Elektronix



Anmeldungsdatum: 29.06.2006
Beiträge: 742

BeitragVerfasst am: 14.10.2008, 09:08    Titel: Antworten mit Zitat

InvalidateRect (ByVal hwnd As Long, ByRef lpRect As RECT, ByVal bErase As Long) As Long
_________________
Und die Grundgebihr is aa scho drin- DOS is jo nett.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 14.10.2008, 11:31    Titel: Antworten mit Zitat

gibt aber auch glaub ich ne Message dafür... WM_PAINT. Das ist das, was bei VB den Refresh auslöst.
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Elektronix



Anmeldungsdatum: 29.06.2006
Beiträge: 742

BeitragVerfasst am: 14.10.2008, 11:45    Titel: Antworten mit Zitat

Richtig. Aber WM_PAINT kann man nicht per SendMessage verschicken. InvalidateRect macht den Fensterbereich ungültig und löst dadurch die WM_PAINT-Nachricht aus.

Also: Du änderst die Button-Beschriftung (NICHT unter WM_PAINT!), löst mit InvalidateRect eine WM_PAINT aus, danach wird unter WM_PAINT das Fenster samt neu beschriftetem Button neu gezeichnet.
_________________
Und die Grundgebihr is aa scho drin- DOS is jo nett.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 14.10.2008, 14:22    Titel: Antworten mit Zitat

okay, der klassiker, ursache und wirkung verwechselt grinsen
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Nitroxis



Anmeldungsdatum: 27.02.2008
Beiträge: 300
Wohnort: Irgendwo...

BeitragVerfasst am: 15.10.2008, 17:03    Titel: Antworten mit Zitat

Danke
Denn ich habs die ganze Zeit mit WM_PAINT versucht, hat aber nicht geklappt happy
Wass soll ich den bei lpRect und bei bErase angeben?
Hab schon bei msdn nach geguckt, verstehe es aber nicht
msdn hat Folgendes geschrieben:
lpRect
[in] Pointer to a RECT structure that contains the client coordinates of the rectangle to be added to the update region. If this parameter is NULL, the entire client area is added to the update region.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 15.10.2008, 17:21    Titel: Antworten mit Zitat

lpRect = RECT = Rechtecht = Die Koordinaten der Fläche, die neu gezeichnet werden soll.
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Nitroxis



Anmeldungsdatum: 27.02.2008
Beiträge: 300
Wohnort: Irgendwo...

BeitragVerfasst am: 15.10.2008, 17:28    Titel: Antworten mit Zitat

Hmm der Text ändert sich trotzdem nicht!
Wenn ich den Text ändere mit SetWindowText ändere und dann mit InvalidateRect das Control neuzeichen lasse, wird der text trotzdem nicht angezeigt. Er wird aber geändert: Wenn ich dann mit GetWindowText den Text lese ist das der neue Text.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz