WM_WindowPosChanged



  • Wie kann man es erreichen, dass die Nachricht WM_WindowPosChanged nicht verarbeitet wird.
    Ich habe es jetzt einfach so gemacht:

    void CMainFrame::OnWindowPosChanged(WINDOWPOS* lpwndpos)
    {
    	//CFrameWnd::OnWindowPosChanged(lpwndpos);
    
    	return;
    }
    

    Also einfach eine leere Funktion.
    Aber irgendwie klappt es nicht.
    Also meine Frage: Geht das so oder nicht?
    Mfg



  • wenn du WM_SIZE und WM_MOVE unterdrücken willst, sollte das so klappen. was hast du vor?



  • Also
    ich habe vor, dass mein Prog nicht verschoben wird, wenn man die Taskleiste verschiebt(besser gesagt an eine andere Ecke andockt).
    (Wenn man die Taskleiste verschiebt werden auch automatisch alle anderen Fenster auf dem Desktop verschoben, damit die Taskbar sie nicht verdeckt).
    Mir ist auch klar, dass dann ein Teil meines Fenster von der Taskbar verdeckt wird, aber das stört nicht.



  • Ich glaube, in diesem Fall must du in PreTranslateMessage die entsprechenden Nachrichten abfangen.



  • Also ich habe PreTranslateMessage wie folgt verändert:

    BOOL CMainFrame::PreTranslateMessage(MSG* pMsg)
    {
    	// TODO: Fügen Sie hier Ihren spezialisierten Code ein, und/oder rufen Sie die Basisklasse auf.
    
    	switch(pMsg->message)
    	{
    	case WM_MOVE:
    		AfxMessageBox("Move");
    		break;
    	case WM_WINDOWPOSCHANGED:
    		AfxMessageBox("changed");
    		break;
    	case WM_MOVING:
    		AfxMessageBox("moving");
    		break;
    	case WM_MOUSEWHEEL:
    		AfxMessageBox("WHEEL");
    		break;
    	case WM_NCHITTEST:
    		AfxMessageBox("NCHITTEST");
    		break;
    	default:
    		return CFrameWnd::PreTranslateMessage(pMsg);
    		//return TRUE;
    	}
    
    	//return CFrameWnd::PreTranslateMessage(pMsg);
    }
    

    Doch irgendwie werden die MessageBoxen von fast keiner Nachricht ausgelöst.
    Nur WM_MOUSEWHEEL funktioniert.
    Kann mir einer erklären warum?
    Mfg



  • vielleicht sollteste besser die 'WindowProc' überladen. da kriegste dann alles mit


Anmelden zum Antworten