STN_CLICKED reagiert nicht



  • case WM_CREATE:
    			 {
    					  hStatic=CreateWindow("STATIC", "", WS_CHILD | WS_VISIBLE | SS_LEFT ,
    					  100, 100, 100, 100, 
    					  hwnd, (HMENU)123, hInst, NULL);
    					  return 0; 
    			 }
    
    		 case STN_CLICKED:
    			 {
    				  	  MessageBox(0,"lol",0,0);
    					  return 0 ;
    			 }
    

    Wieso wird bei einem Click auf das static keine Message geschickt?



  • Zunaechst einmal muss das Static Control den Static Style Notify haben:
    CreateWindowEx(0,"static",NULL, SS_NOTIFY|...);

    Die STN_CLICKED Notification Message ist eine Art Nebenmessage der
    WM_COMMAND Message, die im wParam mitgeliefert wird. Irgendwie so sollte das dann abgefragt werden:

    LRESULT CALLBACK MessageHandler(HWND hwnd,UINT imsg,WPARAM wParam,LPARAM lParam){
     switch(imsg){
       ...
       case WM_COMMAND:
            switch HIWORD(wParam){
                  case STN_CLICKED: // Anweisungen, die in diesem Fall
                                    // ausgefuehrt werden sollen
    
    ...
     // Wie gesagt, die Message steckt im HIWORD(wParam), und ist Teil einer
     // WM_COMMAND Message
    

Anmelden zum Antworten