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:

ein windows aufmachen und darin ein freebasic-screen

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Windows-spezifische Fragen
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
atari
gesperrt


Anmeldungsdatum: 26.08.2007
Beiträge: 144

BeitragVerfasst am: 22.10.2007, 13:24    Titel: ein windows aufmachen und darin ein freebasic-screen Antworten mit Zitat

ein windows aufmachen und darin ein freebasic-screen unterbringen, worin man dann die freebasic-befehle :draw, line, put , circle usw benutzen kann.

kann da einer mal den grundriss zeigen.

danke.

mfg
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 22.10.2007, 14:00    Titel: Antworten mit Zitat

Code:
screen 20
'hier malen

_________________
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
csde_rats



Anmeldungsdatum: 07.01.2007
Beiträge: 2292
Wohnort: Zwischen Sessel und Tastatur

BeitragVerfasst am: 22.10.2007, 14:19    Titel: Antworten mit Zitat

@atari:
Das geht nicht.
Du müsstest dafür nämlich ZWEI FBGFX Screens aufmachen, und das geht einfach nicht.
Denn du brauchst die Adresse vom WndProc von einem fbGFX Screen, und müsstest dann mit SetClassLong() das WndProc setzten.
_________________
If hilfreicher_Beitrag then klick(location.here)

Klick
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Neo187



Anmeldungsdatum: 26.12.2005
Beiträge: 350
Wohnort: Oldenburg

BeitragVerfasst am: 22.10.2007, 14:24    Titel: Antworten mit Zitat

csde_rats hat Folgendes geschrieben:
@atari:
Das geht nicht.
Du müsstest dafür nämlich ZWEI FBGFX Screens aufmachen, und das geht einfach nicht.
Denn du brauchst die Adresse vom WndProc von einem fbGFX Screen, und müsstest dann mit SetClassLong() das WndProc setzten.
moin,

was hat diese komplett überdrehte Erklärung damit zu tun, dass man einfach mit SCREEN x ein Windows-Fenster + eingebauten FB-Screen öffnen kann? mit den Augen rollen

MfG,
Neo187
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
csde_rats



Anmeldungsdatum: 07.01.2007
Beiträge: 2292
Wohnort: Zwischen Sessel und Tastatur

BeitragVerfasst am: 22.10.2007, 14:33    Titel: Antworten mit Zitat

Neo187 hat Folgendes geschrieben:
csde_rats hat Folgendes geschrieben:
@atari:
Das geht nicht.
Du müsstest dafür nämlich ZWEI FBGFX Screens aufmachen, und das geht einfach nicht.
Denn du brauchst die Adresse vom WndProc von einem fbGFX Screen, und müsstest dann mit SetClassLong() das WndProc setzten.
moin,

was hat diese komplett überdrehte Erklärung damit zu tun, dass man einfach mit SCREEN x ein Windows-Fenster + eingebauten FB-Screen öffnen kann? mit den Augen rollen

MfG,
Neo187

Ich habe ihn so verstanden, dass er per CreateWindow() ein Fenster erstellen möchte, und dieses Fenster dann "sozusagen" zu einem FB Screen machen möchte.
Ach, obwohl, eigentlich müsste das gehen:

  • Screen initialisieren (z.B. Screen 1)
  • Einen bestimmten Fenstertitel setzten (z.B. WindowTitle("1234567890"))
  • Fenster Handle mittels FindWindow(NULL, StrPtr("1234567890")) besorgen
  • Adresse vom WndProc mittels GetClassLong(hWin, GCL_WNDPROC) besorgen
  • fbGFX Screen schließen (z.B. Screen 0 oder DestroyWindow(hWin))
  • Mittels CreateWindow() und einer zuvor registrierten Default Window Class ein Fenster öffnen
  • Unter WM_CREATE des Fensters per SetClassLong(hWnd, GCL_WNDPROC, WNDPROC_ADDRESSE) das fbGFX Wnd Proc einsetzten
  • Hoffen das es funktioniert grinsen


(@Neo187: Was ist daran überdreht!?)
(Ich gehe mal davon aus, dass atari weiß, wie man einen Screen aufmacht zwinkern )
_________________
If hilfreicher_Beitrag then klick(location.here)

Klick
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
atari
gesperrt


Anmeldungsdatum: 26.08.2007
Beiträge: 144

BeitragVerfasst am: 22.10.2007, 21:30    Titel: Antworten mit Zitat

Zitat:

Ich habe ihn so verstanden, dass er per CreateWindow() ein Fenster erstellen möchte, und dieses Fenster dann "sozusagen" zu einem FB Screen machen möchte.


so ist es.
ich möchte dann im fenster links einpaar buttons unterbringen und rechts soll sich der screen von freebasic befinden.

mfg
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
csde_rats



Anmeldungsdatum: 07.01.2007
Beiträge: 2292
Wohnort: Zwischen Sessel und Tastatur

BeitragVerfasst am: 22.10.2007, 21:35    Titel: Antworten mit Zitat

Hm.

Dann mach's wie oben, nur lasse dein eigenes WndProc drin, reagiere nur auf WM_CREATE und WM_COMMAND, und leite die auch noch (+alle anderen) an das fbGFX WndProc weiter.

Ansonsten könntest du auch ein Fenster aufmachen, dass sich selbst so an das fbGFX Fenster "anhaftet"
(GetWindowPos oder so ähnlich heißt da eine nütztliche Funktion, um eine Fensterpostiton zu ermitteln).

Nat. mit entsprechenden Flags, dass es so aussieht, als würde es "zum" fbGFX Fenster gehören.

Dann müsstest du noch per BitBlt die Titelleiste von dem fbGFX Fenster "verlängern",
und den Rahmen vom fbGFX Fenster auch per BitBlt entsprechend manipulieren.

Damit es auch gut aussieht, müsstest du dann noch die Hintergrundfarben angleichen.
Die Höhe vom "Nebenfenster" müsste dann mit der Höhe der Client-Area vom fbGFX Fenster übereinstimmen, es darf natürlich auch keine "eigene" Titelleiste haben, das musst du alles über die entsprechenden GDI-Funktionen nachbilden.

Das ganze ist also eine Menge Aufwand, allerdings ist dass dann natürlich auch ein sehr guter Effekt!
_________________
If hilfreicher_Beitrag then klick(location.here)

Klick
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
atari
gesperrt


Anmeldungsdatum: 26.08.2007
Beiträge: 144

BeitragVerfasst am: 24.10.2007, 17:22    Titel: Antworten mit Zitat

weiss einer eine lösung mit fbedit. dann kann man doch irgendwie windowsfenster erstellen , oder?

mfg
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
csde_rats



Anmeldungsdatum: 07.01.2007
Beiträge: 2292
Wohnort: Zwischen Sessel und Tastatur

BeitragVerfasst am: 24.10.2007, 18:04    Titel: Antworten mit Zitat

Nein, es gibt keine "mal eben machen"-Lösung fpr dieses Problem.
FBEdit hat einen integrierten Dialog-Editor, und ist eben kein "WAPI WYSWIG Alleskönner-allesmacher".
Wenns nur um "Tool" Buttons geht, mach ein Fenster auf, und pack da die Buttons rein.
Oder selbermalen.
_________________
If hilfreicher_Beitrag then klick(location.here)

Klick
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Lutz Ifer
Grillmeister


Anmeldungsdatum: 23.09.2005
Beiträge: 555

BeitragVerfasst am: 24.10.2007, 19:57    Titel: Antworten mit Zitat

http://lutzifer.freebasic.de/winapi-tutorial.rar

Lutz böse Ifer
_________________
Wahnsinn ist nur die Antwort einer gesunden Psyche auf eine kranke Gesellschaft.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
atari
gesperrt


Anmeldungsdatum: 26.08.2007
Beiträge: 144

BeitragVerfasst am: 26.10.2007, 11:47    Titel: Antworten mit Zitat

was anderes :

wie kann man denn ein opeglfenster in einem freebsicscreen so unterbringen, das es evtl oben links 1/4 vom screen besetzt und der andere screen mit normalen basicbefehlen belegt werden kann?

mfg
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


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

BeitragVerfasst am: 26.10.2007, 12:03    Titel: Antworten mit Zitat

hatten wir schonmal... das geht nicht (oder nur schwer), weil das ganz fenster ein handle besitzt...
_________________
» 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
atari
gesperrt


Anmeldungsdatum: 26.08.2007
Beiträge: 144

BeitragVerfasst am: 26.10.2007, 12:15    Titel: Antworten mit Zitat

jup, danke.

mfg
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
csde_rats



Anmeldungsdatum: 07.01.2007
Beiträge: 2292
Wohnort: Zwischen Sessel und Tastatur

BeitragVerfasst am: 26.10.2007, 13:18    Titel: Antworten mit Zitat

Jojo hat Folgendes geschrieben:
hatten wir schonmal... das geht nicht (oder nur schwer), weil das ganz fenster ein handle besitzt...

...und weil die GFXLib immer nur einen Screen zulässt.
Allerdings liegt in /examples/GL/fbgl was recht nütztliches zur Umstellung.
_________________
If hilfreicher_Beitrag then klick(location.here)

Klick
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Michael712
aka anfänger, programmierer


Anmeldungsdatum: 26.03.2005
Beiträge: 1593

BeitragVerfasst am: 26.10.2007, 14:14    Titel: Antworten mit Zitat

wenn man nur ein fenster geöffnet hat, hat man auch nur einen screen oO
_________________
Code:
#include "signatur.bi"
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
atari
gesperrt


Anmeldungsdatum: 26.08.2007
Beiträge: 144

BeitragVerfasst am: 26.10.2007, 20:29    Titel: Antworten mit Zitat

Zitat:

Allerdings liegt in /examples/GL/fbgl was recht nütztliches zur Umstellung.


das ist eigentlich nur ein normales opengl-fenster , wo durch die openglbefehle linien usw erstellt werden.

mfg
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 -> Windows-spezifische Fragen 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