WM_COMMAND auswerten



  • Hallo Leute,
    ich habe eine Procedur bei der ein integerwert übergeben wird

    void	Lade_Daten(int id){
    :
    :
    }
    

    diese möcht ich über meinen Eventhandler aufrufen

    switch (message){
    		case WM_COMMAND:
    			wmId= LOWORD(wParam); 
    			wmEvent = HIWORD(wParam); 
    			parameter = LOWORD(lParam); 
    			switch (wmId){
    				case BUTTON_LOAD:
    				Lade_Daten(parameter)
    				break;
    

    mit post message möchte ich dem Eventhanler den entsprechenen Aufruf geben

    int id;
    id = -1;
    PostMessage(Wnd_Main, WM_COMMAND, (WPARAM)BUTTON_LOAD, (LPARAM)MAKELONG(id, 0));
    

    geht mit positivn Zahlen, aber nicht mit z.B. -1, wo liegt mein Fehler, kann mir jemand helfen?



  • ganz einfach

    MAKELONG = makro welches ein DWORD zurueck gibt
    und
    DWORD = unsigned long

    dh vorteichenlos {o;

    uebergib es einfach ohne des MAKELONG, zahlen wie 0 1 oder -1 kannst du an LPARAM ohne probleme uebergeben



  • PostMessage(Wnd_Main, WM_COMMAND, (WPARAM)BUTTON_LOAD, (LPARAM)(-1));
    

    bei Übergabe von -1 bekomme ich immer LOWORD(lParam) = 65535 als parameter übergeben, geb ich z.B 4 ein bekomme ich auch 4



  • WinApi ist net so einfach schrieb:

    parameter = LOWORD(lParam);
    

    Du zerteilst (long)lParam in short low und short high; long = 32 Bit, short = 16 Bit



  • Ah->ja, danke für den Hinweis, jetzt klapptz.


Anmelden zum Antworten