Salve,
vorrei implementare un message cracker personale per poter creare dei metodi collegati ad ogni menuitem del menu:
in pratica nella callback window WM_COMMAND mi porta a Cls_OnCommand() ma da la non posso gestire il menuitem IDM_BLOCK infanti non mi porta alla funzione Cls_OnMenuBlock() (portandosi dietro HWND) anche se credo di avre dichiarato bene la macro HANDLE_IDM_BLOCK (l'ho copiata da WM_DESTROY dal file windowsx.h la macro si porta appresso solo la HWND)codice:#define STRICT #include <windows.h> #include <windowsx.h> #define IDM_BLOCK 800 // Declare Custom HANDLE MSG // #define HANDLE_IDM_BLOCK(hwnd, wParam, lParam, fn) \ ((fn)(hwnd), 0L) #define FORWARD_IDM_BLOCK(hwnd, fn) \ (void)(fn)((hwnd), IDM_BLOCK, 0L, 0L) /////////////////////////////// // Default void Cls_OnDestroy(HWND hwnd); void Cls_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify); BOOL Cls_OnCreate(HWND hwnd, LPCREATESTRUCT lpCreateStruct); // Custom void Cls_OnMenuBlock(HWND hwnd); LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { __try { switch (message) { HANDLE_MSG (hWnd, WM_CREATE, Cls_OnCreate); HANDLE_MSG (hWnd, WM_COMMAND, Cls_OnCommand); HANDLE_MSG (hWnd, WM_DESTROY, Cls_OnDestroy); } } __except(EXCEPTION_EXECUTE_HANDLER) {} return DefWindowProc(hWnd, message, wParam, lParam); } void Cls_OnCommand(HWND hWnd, int id, HWND hwndCtl, UINT codeNotify) { __try { switch (id) { HANDLE_MSG (hWnd, IDM_BLOCK, Cls_OnMenuBlock); } } __except(EXCEPTION_EXECUTE_HANDLER) {} } void Cls_OnMenuBlock(HWND hwnd) { }
L'errore quando eseguo il codice è:
error C2562: 'Cls_OnCommand' : 'void' function returning a value
ma a questo punto non capisco dove sbaglio!
grazie



Rispondi quotando