 |
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 |
rix
Anmeldungsdatum: 20.03.2007 Beiträge: 20
|
Verfasst am: 11.08.2008, 20:43 Titel: Info Dialog aus Menü aufrufen |
|
|
Hallo!
So, ich versuche mich gerade in die Win32 API Funktionen rein zu arbeiten...
Leider verstehe ich im Moment nur die Hälfte... Kann mir mal einer erklären wie ich einen 2. Dialog aus einem Menü heraus öffne?
(IDM_HILFE_INFO)
Ich habe das Forum schon durchsucht, nur mit den gefundenen Beiträgen komm ich gar nicht klar
(http://forum.qbasic.at/viewtopic.php?t=5505)
Kurz und knapp, es soll einer vorhandener Dialog (IDD_INFO) geöffnet werden.
Nur ich kapiere es nicht
test.bas
Code: |
#Include once "windows.bi"
#Include Once "win/commctrl.bi"
#Include Once "win/commdlg.bi"
#Include Once "win/shellapi.bi"
#Include Once "mysql/mysql.bi"
#Include "test.bi"
Function hauptmenue(ByVal hWin As HWND,ByVal uMsg As UINT,ByVal wParam As WPARAM,ByVal lParam As LPARAM) As Integer
Select Case uMsg
Case WM_INITDIALOG
hWnd=hWin
'
Case WM_COMMAND
Select Case HiWord(wParam)
Case BN_CLICKED,1
Select Case LoWord(wParam)
Case IDM_PROGRAMM_EINSTELLUNGEN
'
Case IDM_PROGRAMM_BEENDEN
SendMessage(hWin,WM_CLOSE,0,0)
'
Case IDM_HILFE_INFO
' mach hier einen info dialog auf (IDD_INFO ID: 1100)
'
Case IDM_HILFE_HILFE
'
End Select
'
End Select
'
Case WM_CLOSE
DestroyWindow(hWin)
'
Case WM_DESTROY
PostQuitMessage(NULL)
'
Case Else
Return DefWindowProc(hWin,uMsg,wParam,lParam)
'
End Select
Return 0
End Function
Function hauptfenster(ByVal hInst As HINSTANCE,ByVal hPrevInst As HINSTANCE,ByVal CmdShow As Integer) As Integer
Dim wc As WNDCLASSEX
Dim msg As MSG
wc.cbSize=SizeOf(WNDCLASSEX)
wc.style=CS_HREDRAW or CS_VREDRAW
wc.lpfnWndProc=@hauptmenue
wc.cbClsExtra=0
wc.cbWndExtra=DLGWINDOWEXTRA
wc.hInstance=hInst
wc.hbrBackground=Cast(HBRUSH,COLOR_BTNFACE+2)
wc.lpszMenuName=Cast(ZString Ptr,IDM_MENU1)
wc.lpszClassName=@ClassNameMain
wc.hIcon=LoadIcon(hInstance,MAKEINTRESOURCE(200))
wc.hIconSm=wc.hIcon
wc.hCursor=LoadCursor(NULL,IDC_ARROW)
RegisterClassEx(@wc)
CreateDialogParam(hInstance,Cast(ZString Ptr,IDD_HAUPT),NULL,@hauptmenue,NULL)
ShowWindow(hWnd,SW_SHOWNORMAL)
UpdateWindow(hWnd)
Do While GetMessage(@msg,NULL,0,0)
TranslateMessage(@msg)
DispatchMessage(@msg)
Loop
Return msg.wParam
End Function
hInstance=GetModuleHandle(NULL)
InitCommonControls
hauptfenster(hInstance,NULL,SW_SHOWDEFAULT)
ExitProcess(0)
End
|
test.bi
Code: |
#Define IDD_HAUPT 1000 ' Dialog - Hauptfenster
#Define IDD_INFO 1100 ' Dialog - Info/Hilfe
#Define IDD_EINSTELLUNGEN 1200 ' Dialog - Einstellungen
#Define IDM_MENU1 10000 ' Hauptmenü -Programm-
#Define IDM_PROGRAMM_EINSTELLUNGEN 10001 ' Hauptmenü -Programm, Einstellungen-
#Define IDM_PROGRAMM_BEENDEN 10002 ' Hauptmenü -Programm, Beeenden-
#Define IDM_HILFE_INFO 20001 ' Hauptmenü -?, Info-
#Define IDM_HILFE_HILFE 20002 ' Hauptmenü -?, Hilfe-
Dim Shared hInstance As HMODULE
Dim Shared hWnd As HWND
Const AppName="eic"
Const ClassNameMain="HAUPTKLASSE"
Const ClassNameInfo="INFOKLASSE"
Const ClassNameSet="EINSTKLASSE"
|
Ich danke schon mal für Eure Antworten, sofern welche kommen
EDIT:
Ich denke mal ich muss ne 2. Klasse erstellen für das Fenster, aber wie rufe ich das hier --> Case IDM_HILFE_INFO
' mach hier einen info dialog auf (IDD_INFO ID: 1100) <-- auf?
Zuletzt bearbeitet von rix am 12.08.2008, 17:42, insgesamt einmal bearbeitet |
|
Nach oben |
|
 |
Elektronix
Anmeldungsdatum: 29.06.2006 Beiträge: 742
|
Verfasst am: 12.08.2008, 09:12 Titel: |
|
|
Wirklich verstanden hab ich Deine Frage ja nicht. Du willst über ein Menü einen Dialog aufrufen. Dann fragst Du einfach unter WM_COMMAND das ID des Menüpunktes ab und rufst dort den Dialog auf. Eine Fensterklasse für das Menü ist nicht notwendig. Hast Du mal überprüft, ob IDM_HILFE_INFO überhaupt abgefragt wird (einfach mal ne MessageBox reinsetzen)? Den Dialog rufst Du mit DialogBox (für modale Dialoge) oder CreateDialog (nicht modale Dialoge) auf.
Soweit ich es überblicke, ist "test.bi" gar nicht in das Hauptprogramm includiert. _________________ Und die Grundgebihr is aa scho drin- DOS is jo nett. |
|
Nach oben |
|
 |
rix
Anmeldungsdatum: 20.03.2007 Beiträge: 20
|
Verfasst am: 12.08.2008, 17:47 Titel: |
|
|
Hallo Elektronix.
War leider ein kleiner Übernahmefehler hier in den Post. Die "test.bi" ist in das Hauptprogramm includiert, hatte ich nur vergessen hier im Post zu ändern.
Mein Problem ist, wie rufe ich den Dialog auf?
Hier die Abfrage auf das Menü
Code: |
[..]
Case WM_COMMAND
Select Case HiWord(wParam)
Case BN_CLICKED,1
Select Case LoWord(wParam)
[..]
|
Und hier ja der Teil wo abgefragt wird (nach meinem Verstädnis)
Code: |
[..]
Case IDM_HILFE_INFO
' mach hier einen info dialog auf (IDD_INFO ID: 1100)
'
[..]
|
Ich weiß nicht wie ich den Dialog aufmachen soll
Hab hier das Petzoldkompendium vor mir liegen und war auch shcon auf den MSDN Seiten, nur so langsam glaube ich, dass ich den Wald vor lauter Bäumen nicht sehe... |
|
Nach oben |
|
 |
Elektronix
Anmeldungsdatum: 29.06.2006 Beiträge: 742
|
Verfasst am: 12.08.2008, 21:31 Titel: |
|
|
Vielleicht solltest Du mal ein Tutorial durcharbeiten. Da Du mit dem Petzold arbeitest, scheinst Du C wenigestens einigermaßen zu verstehen. Hier eine Auswahl:
http://www.c-plusplus.de/forum/viewtopic-var-t-is-217065.html _________________ Und die Grundgebihr is aa scho drin- DOS is jo nett. |
|
Nach oben |
|
 |
rix
Anmeldungsdatum: 20.03.2007 Beiträge: 20
|
Verfasst am: 12.08.2008, 22:18 Titel: |
|
|
Okay, danke...
Na dann les ich mal weiter und forsche...
P.S:
Zitat: |
Da Du mit dem Petzold arbeitest, scheinst Du C wenigestens einigermaßen zu verstehen.
|
Nicht jeder kommt als Basicmeister auf die Welt und btw... Wenn man nicht die Schieb-Mich klick mich Funktionen unter VB2008 o.ä nutzen will, heißt es halt back.2.the.basics  |
|
Nach oben |
|
 |
Elektronix
Anmeldungsdatum: 29.06.2006 Beiträge: 742
|
Verfasst am: 13.08.2008, 08:54 Titel: |
|
|
Gute Einstellung!  _________________ Und die Grundgebihr is aa scho drin- DOS is jo nett. |
|
Nach oben |
|
 |
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
Verfasst am: 21.08.2008, 19:56 Titel: |
|
|
Code: | DialogBoxParam(hInstance, Cast(ZString Ptr, IDD_INFO), hWin, @DLGPROC, NULL) |
In FBEdit kann man per Doppelklick auf eine leere Fläche im Dialogeditor auch ein Template auswählen (DialogApp.rad in diesem Fall) und sich das Grundgerüst so erstellen lassen... |
|
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.
|
|