|
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
ALWIM
Anmeldungsdatum: 08.08.2006 Beiträge: 1040 Wohnort: Niederbayern
|
Verfasst am: 31.01.2018, 13:52 Titel: Vollbildmodus mit Screenres - Probleme mit Maus? |
|
|
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 |
|
|
Jojo alter Rang
Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 31.01.2018, 14:50 Titel: |
|
|
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. _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
|
|
Nach oben |
|
|
ALWIM
Anmeldungsdatum: 08.08.2006 Beiträge: 1040 Wohnort: Niederbayern
|
Verfasst am: 01.02.2018, 03:16 Titel: |
|
|
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. | 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 |
|
|
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1875 Wohnort: D59192
|
Verfasst am: 01.02.2018, 11:00 Titel: |
|
|
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 |
|
|
grindstone
Anmeldungsdatum: 03.10.2010 Beiträge: 1212 Wohnort: Ruhrpott
|
Verfasst am: 01.02.2018, 12:22 Titel: |
|
|
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 |
|
|
ALWIM
Anmeldungsdatum: 08.08.2006 Beiträge: 1040 Wohnort: Niederbayern
|
Verfasst am: 07.02.2018, 22:37 Titel: |
|
|
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 |
|
|
grindstone
Anmeldungsdatum: 03.10.2010 Beiträge: 1212 Wohnort: Ruhrpott
|
Verfasst am: 08.02.2018, 11:45 Titel: |
|
|
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 |
|
|
|
|
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.
|
|