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:

Vollbildmodus mit Screenres - Probleme mit Maus?

 
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
ALWIM



Anmeldungsdatum: 08.08.2006
Beiträge: 956
Wohnort: Niederbayern

BeitragVerfasst am: 31.01.2018, 12:52    Titel: Vollbildmodus mit Screenres - Probleme mit Maus? Antworten mit Zitat

Ich habe ein Programm mit dem Befehl
Code:
SCREENRES 1024, 420, 32
Wenn ich mit der Maus an bestimmten Positionen auf Buttons klicke funktioniert das nur, wenn ich nicht im Vollbildmodus bin (durch klicken auf das Quadrat oben rechts im Fenster, komme ich in den Vollbildschirmmodus)! Die Positionen sind quasi an anderer Stelle? Quasi, der Button wird an anderer Position angezeigt, als im Programm definiert wurde. Was kann ich dagegen tun?

Mein Ziel ist es, dass ich den Button im Vollbildmodus und im normalen Fenstermodus 1024, 420, 32 drücken und auswerten kann!
Jemand eine Idee?

Gruß
ALWIM
_________________
SHELL SHUTDOWN -s -t 05
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


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

BeitragVerfasst am: 31.01.2018, 13:50    Titel: Antworten mit Zitat

An der Zeile
Code:
SCREENRES 1024, 420, 32

liegt es bestimmt nicht? Besteht dein Code aus noch mehr Zeilen? Wenn ja, wären die wesentlich interessanter als der SCREENRES-Befehl, um überhaupt irgendeine Aussage machen zu können. Zunge rausstrecken
_________________
» 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
ALWIM



Anmeldungsdatum: 08.08.2006
Beiträge: 956
Wohnort: Niederbayern

BeitragVerfasst am: 01.02.2018, 02:16    Titel: Antworten mit Zitat

Jojo hat Folgendes geschrieben:
An der Zeile
Code:
SCREENRES 1024, 420, 32

liegt es bestimmt nicht? Besteht dein Code aus noch mehr Zeilen? Wenn ja, wären die wesentlich interessanter als der SCREENRES-Befehl, um überhaupt irgendeine Aussage machen zu können. Zunge rausstrecken
Das habe ich auch nicht gesagt. Man versteht mich irgendwie falsch?

Zum Verständnis von meinem Problem:

Ich habe ein Programm erstellt, wo auf dem Bildschirm mit der Maus ein Button gedrückt werden kann. Diesen kann ich nicht mehr drücken, wenn ich in den Vollbildschirmmodus wechsle! Angezeigt wird er an der richtigen Stelle, aber ich kann ihn nicht mehr drücken? Die Positionen zum drücken sind komischerweise ganz wo anders, als der Button angezeigt wird.

Es reicht schon, wenn man folgende Zeilen verwendet:

Code:
SCREENRES 1024, 420, 32
DIM AS INTEGER mausx, mausy, wheel, mausk
LINE(2,2)-(93,28), &hFFFFFF, BF
DO
   GETMOUSE mausx, mausy, wheel, mausk
   SELECT CASE mausk
      CASE 1
         SELECT CASE mausx
            CASE 2 TO 93
               SELECT CASE mausy
                  CASE 2 TO 28
                     BEEP
               END SELECT
         END SELECT
   END SELECT
   SLEEP 1
   IF MULTIKEY(&h01) THEN END
LOOP

_________________
SHELL SHUTDOWN -s -t 05
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1855
Wohnort: D59192

BeitragVerfasst am: 01.02.2018, 10:00    Titel: Antworten mit Zitat

Hilft nur:
Code:
SCREENRES 1024, 420, 32, , 4

_________________
Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
grindstone



Anmeldungsdatum: 03.10.2010
Beiträge: 830
Wohnort: Ruhrpott

BeitragVerfasst am: 01.02.2018, 11:22    Titel: Antworten mit Zitat

Das Problem ist, daß die Mauskoordinaten -im Gegensatz zu den SCREENRES - Dimensionen- auf die Vollbild - Bildschirmkoordinaten umgerechnet werden. Um das zu korrigieren, musst du im Vollbildmodus den Grafikscreen auf dieselbe Größe setzen wie den Bildschirm; wobei die Schwierigkeit ist, den Vollbildmodus zu detektieren.

Hier mal ein Beispiel (quick and dirty, es gibt sicherlich elegantere Methoden):
Code:
#Include Once "fbgfx.bi"
#Include Once "windows.bi"

Dim As Integer br, ho

ScreenRes 1024, 420, 32
Dim As Integer mausx, mausy, wheel, mausk

Do
   Line(2,2)-(93,28), &hFFFFFF, BF
   ScreenInfo br, ho
   If GetSystemMetrics(SM_CYSCREEN) = 768 And ho <> 768 Then
      ScreenRes GetSystemMetrics(SM_CXSCREEN), GetSystemMetrics(SM_CYSCREEN), 32,,fb.gfx_fullScreen
   EndIf
   GetMouse mausx, mausy, wheel, mausk
   Select Case mausk
      Case 1
         Select Case mausx
            Case 2 To 93
               Select Case mausy
                  Case 2 To 28
                     ScreenRes 1024, 420, 32 'button gedrückt --> vollbildmodus beenden
               End Select
         End Select
   End Select
   Sleep 1
   If MultiKey(&h01) Then End
Loop


Gruß
grindstone
_________________
For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ALWIM



Anmeldungsdatum: 08.08.2006
Beiträge: 956
Wohnort: Niederbayern

BeitragVerfasst am: 07.02.2018, 21:37    Titel: Antworten mit Zitat

Ich bin zur Zeit ein wenig am testen! Bei meinem Desktoprechner, kann ich in den Vollbildschirmmodus umschalten und es funktioniert alles. Nur wenn ich mit WinApi eine Messagebox öffne, minimiert sich das Fenster und bleibt nach dem Schließen der Messagebox minimiert. Ich muss extra auf das Symbol in der Taskleiste klicken, um das Programm wieder zu maximieren! Auf meinem Uralt-Laptop funktioniert das gleiche Programm nicht mehr. Ich sehe keine Grafiken bzw. kein Fenster. Und das, obwohl der Bildschirm vom Laptop größer bzw. genau gleich ist, als die ausgewählte Bildschirmgröße!

Kann man die Messagebox am Bildschirm anzeigen lassen, ohne dass sich das Vollbildfenster minimiert? Wie kriege ich auf meinem Laptop ein Vollbild hin? Bildschirmauflösung auf meinem Laptop ist 1024x768. Auf meinem Desktoprechner 1920x1080.

Versuchte Größe: 1024x768 und 1024x420

Gruß
ALWIM
_________________
SHELL SHUTDOWN -s -t 05
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
grindstone



Anmeldungsdatum: 03.10.2010
Beiträge: 830
Wohnort: Ruhrpott

BeitragVerfasst am: 08.02.2018, 10:45    Titel: Antworten mit Zitat

Du kannst das Fenster wiederherstellen, indem du nach Schließen der Message Box
Code:
ShowWindow(hWnd,SW_SHOW)
aufrufst. An das Fensterhandle hWnd kommst du mit
Code:
Dim As HWND hWnd
hWnd = GetForegroundWindow()
während das Fenster im Vordergrund ist.

Gruß
grindstone
_________________
For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
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