mikson Temat założony przez niniejszego użytkownika |
[winAPI][C++] Problemy z otworzeniem okna dialogowego » 2014-01-15 19:57:05 Witam. Mam problemy z otworzeniem okna dialogowego. Robię to w ten sposób: else if( LOWORD( wParam ) == 108 ) { DialogBox( HINSTANCE hInstance, LPCTSTR lpTemplate, HWND hWndParent, DLGPROC lpDialogFunc ) }
Ale kompilator mówi: In function `LRESULT WindowProcedure(HWND__*, UINT, WPARAM, LPARAM)': expected primary-expression before "hInstance" expected primary-expression before "lpTemplate" expected primary-expression before "hWndParent" expected primary-expression before "lpDialogFunc" expected `;' before '}' token [Build Error] [main.o] Error 1 Na wszelki wypadek, kod okna dialogowego w pliku *.rc : #include <windows.h> #include "dialog.h"
IDD_MOJDIALOG DIALOG DISCARDABLE 20, 20, 200, 66 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Mój własny dialog" FONT 8, "MS Sans Serif" { DEFPUSHBUTTON "&Fajnie!", IDOK, 124, 18, 50, 14 PUSHBUTTON "&Anuluj", IDCANCEL, 124, 35, 50, 14 LTEXT "To jest okno dialogowe", IDC_LABEL, 16, 18, 80, 33 }
BOOL CALLBACK DlgProc( HWND hwnd, UINT Msg, WPARAM wParam, LPARAM lParam ) { switch( Msg ) { case WM_INITDIALOG: { } break; case WM_COMMAND: { } break; default: return FALSE; } return TRUE; }
|
|
Monika90 |
» 2014-01-16 11:05:27 DialogBox( HINSTANCE hInstance, LPCTSTR lpTemplate, HWND hWndParent, DLGPROC lpDialogFunc ) | Funkcje - pierwsze starcieNa wszelki wypadek, kod okna dialogowego w pliku *.rc :
BOOL CALLBACK DlgProc( HWND hwnd, UINT Msg, WPARAM wParam, LPARAM lParam )
|
Procedurę okna dialogowego należy umieścić w pliku cpp, a nie rc |
|
mikson Temat założony przez niniejszego użytkownika |
» 2014-01-16 20:36:46 Ok, zrozumiałem i poprawiłem swoje błędy, ale nie wiem niestety jeszcze do czego służą lpTemplate i lpDialogFunc . Co powinienem tam zdefiniować? Mój kod wywołania okna wygląda tak: DialogBox( hInstance, LPCTSTR lpTemplate , hwnd, DLGPROC lpDialogFunc );
|
|
Monika90 |
» 2014-01-16 20:43:19 lpTemplate to nazwa szablonu okna dialogowego w pliku rc (albo jego identyfikator), a lpDialogFunc to wskaźnik do procedury okna, czyli u ciebie będzie tak: DialogBox( hInstance, MAKEINTRESOURCE( IDD_MOJDIALOG ), hwnd, DlgProc );
To są pytania o elementarne sprawy, które na pewno są opisane w kursie, czytaj uważnie kurs. |
|
mikson Temat założony przez niniejszego użytkownika |
» 2014-01-17 17:47:15 Kompilator mówi `IDD_MOJDIALOG' undeclared (first use this function) mimo wpisu #define IDD_MOJDIALOG 200 w pliku *.rc. |
|
Monika90 |
» 2014-01-18 12:15:25 #define IDD_MOJDIALOG 200 To powinieneś dać do jakiegoś pliku nagłówkowego i inkludować go zarówno w pliku *.rc, jak i w *.cpp |
|
mikson Temat założony przez niniejszego użytkownika |
Zamykam. » 2014-01-18 16:41:26 Wielkie dzięki, już działa! |
|
« 1 » |