maus position beim klick aufs trayicon



  • hiho

    wie bekomme ich die mausposition wenn ich aufs trayicon klicke ?
    ich will wenn ich mit rechts drauf klicke nen menü erscheinen lassen dazu brauche ich laut dem was ich gefunden habe die position der maus

    //tray messagemap
    LRESULT CRfcDlg::OnTrayNotification(WPARAM 
    wp, LPARAM lp)
    {
    
        switch (lp)
        {
        case WM_LBUTTONDBLCLK:
            return killtray();
            break;
        case WM_RBUTTONDOWN:
            break;
        }
        return 0;
    } 
    
    //das was ich zum menü gefunden habe
    CPoint m_Point = point; 
        ClientToScreen(&m_Point); 
        CMenu *m_Kontextmenu = new CMenu(); 
        m_Kontextmenu->LoadMenu(IDR_KONTEXTMENU); 
        CMenu *pMenu = m_Kontextmenu->GetSubMenu(0); 
        UINT nID=(UINT)pMenu->TrackPopupMenu (TPM_LEFTALIGN|TPM_TOPALIGN|TPM_RETURNCMD| 
                                                    TPM_LEFTBUTTON,m_Point.x,m_Point.y,this,NULL); 
        delete m_Kontextmenu; 
        if (nID!=0) 
           PostMessage(WM_COMMAND,nID,0);
    


  • ok habs mit GetCursorPos() gemacht

    nu hab ich nurnoch das problem wenn das menü hochpopt und ich dann ausserhalb klicke bleibt das ding immanoch...

    wie bekomm ich das nu wieda gebacken ? 😑



  • Schau mal in die FAQ...



  • PostMessage(FHandle, WM_NULL, 0, 0);
    SendMessage(FHandle, WM_RBUTTONUP, 0, 0);
    

    hinter das TrackPopupMenu(...) setzen.



  • @WebFritzi geht imma noch net ...



  • WM_MOUSEOVER oder so was ähnliches dann

    WM_MOUSOVER(pos == 0);

    oder so was... 😉


Log in to reply