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:

WIN API Buttons

 
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
ALWIM



Anmeldungsdatum: 08.08.2006
Beiträge: 1037
Wohnort: Niederbayern

BeitragVerfasst am: 25.11.2010, 17:40    Titel: WIN API Buttons Antworten mit Zitat

Angenommen ich habe 3 oder 4 (vollwertige) Fenster.
Auf jedem Fenster möchte ich einen Button mit einer Funktion haben.

Ich klicke zum Beispiel auf einen der Button und der öffnet dann ein weiteres Fenster bzw. gibt auf einem der Fenster einen Text aus. (Keine Messagebox)

Vielleicht kann mir jemand sagen wie das geht?
Habe schon sämtliche Tutorials bzw. Foren durchsucht und nichts entsprechendes gefunden.

Mit freundlichen Grüßen
ALWIM
_________________
SHELL SHUTDOWN -s -t 05
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
28398



Anmeldungsdatum: 25.04.2008
Beiträge: 1917

BeitragVerfasst am: 25.11.2010, 21:53    Titel: Antworten mit Zitat

Custom Messages.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1874
Wohnort: D59192

BeitragVerfasst am: 27.11.2010, 14:48    Titel: Antworten mit Zitat

So etwa?
Code:
' 4 Folgefenster, als modeless dialog

#Include "dialogs.bas"
'http://www.freebasic.net/forum/viewtopic.php?p=47539#47539
Dim Shared As HWND g_Dlg1, g_Dlg2, g_Dlg3, g_Dlg4
Dim Shared As Dword FStyle = WS_OVERLAPPED Or WS_SYSMENU  Or WS_VISIBLE

Function FolgeDialogProc4( ByVal hDlg As  HWND, _
  ByVal uMsg As UINT, _
  ByVal wParam As WPARAM, _
  ByVal lParam As LPARAM ) As Integer

  Select Case uMsg

    Case WM_CLOSE
      DestroyWindow( hDlg )
      g_Dlg4 = 0

  End Select

  Return 0
End Function

Function FolgeDialogProc3( ByVal hDlg As  HWND, _
  ByVal uMsg As UINT, _
  ByVal wParam As WPARAM, _
  ByVal lParam As LPARAM ) As Integer

  Select Case uMsg

    Case WM_COMMAND
      If LoWord(wParam) = 103 Then
        If IsWindow( g_Dlg4 ) = 0 Then
          Dim As LPDLGTEMPLATE lpdt
          Dialog( 1, 120, -12, 110, 80, "Fenster 4", lpdt, FStyle )
          LText( 110, 10, 10, 80, 10, "Dies ist eine Textzeile" )
          g_Dlg4 = CreateModelessDialog( hDlg, @FolgeDialogProc4, 0, lpdt )
        End If
      End If

    Case WM_CLOSE
      DestroyWindow( hDlg )
      g_Dlg3 = 0

  End Select

  Return 0
End Function

Function FolgeDialogProc2( ByVal hDlg As  HWND, _
  ByVal uMsg As UINT, _
  ByVal wParam As WPARAM, _
  ByVal lParam As LPARAM ) As Integer

  Select Case uMsg

    Case WM_COMMAND
      If LoWord(wParam) = 102 Then
        If IsWindow( g_Dlg3 ) = 0 Then
          Dim As LPDLGTEMPLATE lpdt
          Dialog( 1, -123, 75, 110, 80, "Fenster 3", lpdt, FStyle )
          DefPushButton( 103, -1, 50, 40, 12, "Text ->" )
          g_Dlg3 = CreateModelessDialog( hDlg, @FolgeDialogProc3, 0, lpdt )
        End If
      End If

    Case WM_CLOSE
      DestroyWindow( hDlg )
      g_Dlg2 = 0

  End Select

  Return 0
End Function

Function FolgeDialogProc1( ByVal hDlg As  HWND, _
  ByVal uMsg As UINT, _
  ByVal wParam As WPARAM, _
  ByVal lParam As LPARAM ) As Integer

  Select Case uMsg

    Case WM_COMMAND
      If LoWord(wParam) = 101 Then
        If IsWindow( g_Dlg2 ) = 0 Then
          Dim As LPDLGTEMPLATE lpdt
          Dialog( 1, 120, -12, 110, 80, "Fenster 2", lpdt, FStyle )
          DefPushButton( 102, -1, 50, 40, 12, "Fenster 3" )
          g_Dlg2 = CreateModelessDialog( hDlg, @FolgeDialogProc2, 0, lpdt )
        End If
      End If

    Case WM_CLOSE
      DestroyWindow( hDlg )
      g_Dlg1 = 0

  End Select

  Return 0
End Function


Function MainDialogProc( ByVal hDlg As  HWND, _
  ByVal uMsg As UINT, _
  ByVal wParam As WPARAM, _
  ByVal lParam As LPARAM ) As Integer

  Select Case uMsg
    Case WM_INITDIALOG
      If IsWindow( g_Dlg1 ) = 0 Then
        Dim As LPDLGTEMPLATE lpdt
        Dialog( 1, 0, 0, 110, 80, "Fenster 1", lpdt, FStyle )
        DefPushButton( 101, -1, 50, 40, 12, "Fenster 2" )
        g_Dlg1 = CreateModelessDialog( hDlg, @FolgeDialogProc1, 0, lpdt )
      End If

    Case WM_CLOSE
      DestroyWindow( hDlg )

    Case WM_DESTROY
      PostQuitMessage( NULL )

  End Select

  Return 0
End Function

'=Main=
Dim As LPDLGTEMPLATE lpdt

Dim As HWND hDlg
Dim As MSG wMsg

Dialog( 1, 0, 0, 240, 180, "Hauptfenster", lpdt, FStyle Or DS_CENTER )
LText( 100, 0, 0, 0, 0, "" )'Dummy
hDlg = CreateModelessDialog( 0, @MainDialogProc, 0, lpdt )

Do While GetMessage( @wMsg, NULL, 0, 0 ) <> 0
  If IsDialogMessage( hDlg,  @wMsg ) = 0 Then
    If IsDialogMessage( g_Dlg1,  @wMsg ) = 0 Then
      If IsDialogMessage( g_Dlg2,  @wMsg ) = 0 Then
        If IsDialogMessage( g_Dlg3,  @wMsg ) = 0 Then
          If IsDialogMessage( g_Dlg4,  @wMsg ) = 0 Then
            TranslateMessage( @wMsg )
            DispatchMessage( @wMsg )
          End If
        End If
      End If
    End If
  End If
Loop

_________________
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
ALWIM



Anmeldungsdatum: 08.08.2006
Beiträge: 1037
Wohnort: Niederbayern

BeitragVerfasst am: 28.11.2010, 02:04    Titel: Antworten mit Zitat

Ich glaube das Codebeispiel läuft bei mir nicht.
Wegen dem:
Code:
#Include "dialogs.bas"


Oder ich erstelle zwei .bas Dateien und binde die eine .bas Datei bei der anderen als Menu ein. Ich übergebe dann einfach die entsprechenden Parameter an die andere .bas Datei.

Mein Plan ist ja halt ein Menu für ein Spiel mit der Winapi zu erstellen.

Mit freundlichen Grüßen
ALWIM
_________________
SHELL SHUTDOWN -s -t 05
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1874
Wohnort: D59192

BeitragVerfasst am: 28.11.2010, 12:14    Titel: Antworten mit Zitat

Zitat:
Ich glaube das Codebeispiel läuft bei mir nicht.
Wegen dem:
Code:
#Include "dialogs.bas"

deshalb der Link
http://www.freebasic.net/forum/viewtopic.php?p=47539#47539

da gibt es die dialogs.zip darin die dialogs.bas Datei.

Zitat:
Mein Plan ist ja halt ein Menu für ein Spiel mit der Winapi zu erstellen.
In der dialogs.zip sind auch Beispiele für Menues.
_________________
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
ALWIM



Anmeldungsdatum: 08.08.2006
Beiträge: 1037
Wohnort: Niederbayern

BeitragVerfasst am: 28.11.2010, 18:25    Titel: Antworten mit Zitat

Das ist genau das was ich suche!
Bei der Fbide kann man auch Buttons erstellen bzw. richtige Menüs! (.rc Datei)

Mit der einen .bas Datei die bei dem Link dabei war, kommt mir die Idee mit Minesweeper.
100 Button auf jedem kann man draufklicken.
Aber zuerst das andere!

Mit freundlichen Grüßen
ALWIM
_________________
SHELL SHUTDOWN -s -t 05
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