Über welchem Control befindet sich die Maus?



  • Hey @all,

    kann man irtgendwie aus dem lParam bzw. wParam herausfindeauf welchem Control ich mich gerade mit der Maus befinde?

    Würde das für meine 2 Treeviews benötigen, da ich eine "Unhandled Exception" bekomme wenn ich ausserhalb mit dem Mauscursor herum fahre.

    lg _freeze_



  • Also ja ka warum du ein "Unhandled Exception" bekommst. Aber wenn du wissen möchtest über welchem control du dich befindest kannst du die Controls Subclassen und WM_MOUSEMOVE auswerten. Subclassen siehe http://www.winapi.net/index.php?inhalt=s27

    schirrmie



  • es gibt sicherlich auch WinAPI Funktionen, die eine Cursor Position erwarten und von dem darunterligendem Fenster das Handle liefern



  • Danke vielmals, aber so wird das nix...

    Kann mir jemand erklären wie ich das am besten lösen kann?

    Ich habe 2 Treeviews (IDC_TREE1 => Links und IDC_TREE2 => Rechts)
    nun möchte ich items zwischen den beiden hin und her ziehen.

    Dazu reagiere ich auf WM_LBUTTONUP und WM_MOUSEMOVE wie folgt:

    case WM_NOTIFY: {
    	switch(LOWORD(wParam)) {
    		case IDC_TREE1: {
    			switch (((LPNMHDR) lParam)->code) {
    				case TVN_BEGINDRAG: {
    					 Main_OnBeginDrag(hTree1, (LPNMTREEVIEW)lParam);
    					 ShowCursor(TRUE);
    				}
    				break; 	
    			}
    		case IDC_TREE2: {
    			switch (((LPNMHDR) lParam)->code) {
    				case TVN_BEGINDRAG: {
    					 Main_OnBeginDrag(hTree2, (LPNMTREEVIEW)lParam);
    					 ShowCursor(TRUE);
    				}
    				break; 	
    			}
    		}
    	}
    }
    case WM_LBUTTONUP: {
    	if(g_fDragging) {
    		Main_OnLButtonUp(hTree1);
    		Main_OnLButtonUp(hTree2);
    	}
    }
    case WM_MOUSEMOVE: {					
    	Pos = MAKEPOINTS(lParam);
    	Main_OnMouseMove(hDlg, hTree1, Pos.x, Pos.y);
    	Main_OnMouseMove(hDlg, hTree2, Pos.x, Pos.y);
    }
    

    Ich schätze das Problem liegt bei den doppelten Main_OnLButtonUp bzw. Main_OnMouseMove, nur wie löse ich das Problem am besten?

    Mit dem Subclassen funktioniert es leider auch nicht. Bitte um Hilfe, bin schon etwas am verzweifeln 😞

    Vielen dank im Voraus
    Lg _freeze_





  • Danke vielmals, so funktionierts 🙂

    nur noch eine andere Frage, wieso geht das Drag-image nicht ins andere Treeview Fenster? Bei ImageList_DragMove bekomme ich auf einmal einen minus wert (point.x) und das bild fängt auf der anderen Seite an.

    Habe mich schon herumgespielt, aber das Drag-Image bleibt nur in dem Fenster von dem aus ich die TVN_BEGINDRAG Nachricht ausgelöst habe.

    lg _freeze_



  • Kann mir dir Frage bitte noch jemand beantworten?

    Vielen Dank im Voraus

    lg _freeze_


Anmelden zum Antworten