⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dialog.cpp

📁 vc++ mp3 源码下载 使用vc写的mp3 播放器
💻 CPP
📖 第 1 页 / 共 5 页
字号:
    SendMessage(m_hTextToolbar, TB_AUTOSIZE, (WPARAM) 0, (LPARAM) 0);
   
    RECT buttonRect;
    SIZE sizeString;
    char temp[] = "HowBigAmI?";
    HDC hdc = GetDC(m_hTextToolbar);

    SendMessage(m_hTextToolbar, TB_GETITEMRECT , (WPARAM) 0, (LPARAM) &buttonRect); 

    GetTextExtentPoint32(hdc, temp, strlen(temp), &sizeString); 
    
    ReleaseDC(m_hTextToolbar, hdc);

    SendMessage(m_hTextToolbar, TB_SETBUTTONSIZE , 0, 
        MAKELPARAM(buttonRect.right - buttonRect.left, sizeString.cy + 6));

    bool useTextLabels, useImages;
    m_context->prefs->GetShowToolbarTextLabels(&useTextLabels);
    m_context->prefs->GetShowToolbarImages(&useImages);

    AddToolbarButtons(useTextLabels, useImages);
}

void MusicBrowserUI::SetTitles()
{
    if (m_pParent == NULL)
    {
       SetWindowText(m_hPlaylistTitle, 
                     "Currently Listening To:");
       SetWindowText(m_hWnd, 
                     "My Music - " BRANDING);
    }   
    else
    {
       string oTitle, oName;
       
       if (m_currentListName.length() == 0)
          oName = "New Playlist";
       else
       {
          char szBase[MAX_PATH];
       
          _splitpath(m_currentListName.c_str(), NULL, NULL, szBase, NULL);
          oName = szBase;
       }
       
       oTitle = string("Editing playlist: ") + oName;
       SetWindowText(m_hPlaylistTitle, 
                     oTitle.c_str());
       oTitle = "Editing " + oName + " - " + BRANDING;
       SetWindowText(m_hWnd, oTitle.c_str());
    }   
}

void MusicBrowserUI::DropFiles(HDROP dropHandle, bool filesAreURLs)
{
    uint32 count;
    char url[1024];

    count = DragQueryFile(  dropHandle,
                            -1L,
                            url,
                            sizeof(url));

    for(uint32 i = 0; i < count; i++)
    {
        DragQueryFile(  dropHandle,
                        i,
                        url,
                        sizeof(url));

        //MessageBox(NULL, url, "url", MB_OK);
    }
}

BOOL MusicBrowserUI::SetCursor(int hitTest, int mouseMsg)
{
    BOOL result = FALSE;

    if((m_overSplitter || m_trackSplitter) && hitTest == HTCLIENT)
    {
        ::SetCursor(m_hSplitterCursor);
        result = TRUE;
    }
    return result;
}

void MusicBrowserUI::MouseMove(uint32 uFlags, POINT &sPoint)
{
    if(m_trackSplitter)
    {
        HDC hdc = GetDC(NULL);
        POINT pt = sPoint;

        MapWindowPoints(m_hWnd, NULL, (LPPOINT)&pt, 1);

        HBRUSH oldBrush = (HBRUSH)SelectObject(hdc, m_splitterBrush);

        PatBlt(hdc,
               m_splitterRect.left, 
               m_splitterRect.top, 
               m_splitterRect.right - m_splitterRect.left, 
               m_splitterRect.bottom - m_splitterRect.top, 
               PATINVERT);

        OffsetRect(&m_splitterRect, (pt.x - m_splitterRect.left), 0);

        PatBlt(hdc,
               m_splitterRect.left, 
               m_splitterRect.top, 
               m_splitterRect.right - m_splitterRect.left, 
               m_splitterRect.bottom - m_splitterRect.top, 
               PATINVERT);

        SelectObject(hdc, oldBrush);

        ReleaseDC(NULL, hdc);
    }
    else
    {
        RECT catalogRect,playlistRect;
        
        GetWindowRect(m_hMusicView, &catalogRect);
        GetWindowRect(m_hPlaylistView, &playlistRect);
        MapWindowPoints(NULL, m_hWnd, (LPPOINT)&catalogRect, 2);
        MapWindowPoints(NULL, m_hWnd, (LPPOINT)&playlistRect, 2);

        m_splitterRect.top = playlistRect.top;
        m_splitterRect.bottom = playlistRect.bottom;
        m_splitterRect.left = catalogRect.right + 1;
        m_splitterRect.right = playlistRect.left - 1;

        if(PtInRect(&m_splitterRect, sPoint))
        {
            m_overSplitter = true;
        }
        else
        {
            m_overSplitter = false;
        }
   
    }
} 

void MusicBrowserUI::MouseButtonDown(int keys, int x, int y)
{
    RECT catalogRect,playlistRect;
    RECT clientRect;
    POINT pt;

    pt.x = x;
    pt.y = y;

    GetClientRect(m_hWnd, &clientRect);
    //InflateRect(&clientRect, -150, 0);
    clientRect.left += 125;
    clientRect.right -= 175;
    GetWindowRect(m_hMusicView, &catalogRect);
    GetWindowRect(m_hPlaylistView, &playlistRect);
    MapWindowPoints(m_hWnd, NULL, (LPPOINT)&pt, 1);
    MapWindowPoints(m_hWnd, NULL, (LPPOINT)&clientRect, 2);

    m_splitterRect.top = playlistRect.top;
    m_splitterRect.bottom = playlistRect.bottom;
    m_splitterRect.left = catalogRect.right + 1;
    m_splitterRect.right = playlistRect.left - 1;

    if(PtInRect(&m_splitterRect, pt))
    {
        m_trackSplitter = true;
        SetCapture(m_hWnd);
        ClipCursor(&clientRect);
        m_hSavedCursor = ::SetCursor(m_hSplitterCursor);

        HDC hdc = GetDC(NULL);

        HBRUSH oldBrush = (HBRUSH)SelectObject(hdc, m_splitterBrush);

        PatBlt(hdc,
               m_splitterRect.left, 
               m_splitterRect.top, 
               m_splitterRect.right - m_splitterRect.left, 
               m_splitterRect.bottom - m_splitterRect.top, 
               PATINVERT);

        SelectObject(hdc, oldBrush);

        ReleaseDC(NULL, hdc);
    }
}

void MusicBrowserUI::MouseButtonUp(int keys, int x, int y)
{
    POINT pt;

    pt.x = x;
    pt.y = y;

    if(m_trackSplitter)
    {
        m_trackSplitter = false;
        ReleaseCapture();
        ClipCursor(NULL);
        ::SetCursor(m_hSavedCursor);

        HDC hdc = GetDC(NULL);

        HBRUSH oldBrush = (HBRUSH)SelectObject(hdc, m_splitterBrush);

        PatBlt(hdc,
               m_splitterRect.left, 
               m_splitterRect.top, 
               m_splitterRect.right - m_splitterRect.left, 
               m_splitterRect.bottom - m_splitterRect.top, 
               PATINVERT);

        SelectObject(hdc, oldBrush);

        ReleaseDC(NULL, hdc);


        RECT catalogRect, playlistRect, titleRect;
        int32 delta;

        GetWindowRect(m_hMusicView, &catalogRect);
        GetWindowRect(m_hPlaylistView, &playlistRect);
        GetWindowRect(m_hPlaylistTitle, &titleRect);

        delta = (m_splitterRect.right + 1) - playlistRect.left;
        catalogRect.right = m_splitterRect.left - 1;
        playlistRect.left = m_splitterRect.right + 1;
        titleRect.left += delta;

        MapWindowPoints(NULL, m_hWnd, (LPPOINT)&catalogRect, 2);
        MapWindowPoints(NULL, m_hWnd, (LPPOINT)&playlistRect, 2);
        MapWindowPoints(NULL, m_hWnd, (LPPOINT)&titleRect, 2);

        
        MoveWindow(m_hMusicView, 
                  catalogRect.left, 
                  catalogRect.top, 
        	      (catalogRect.right - catalogRect.left),
                  catalogRect.bottom - catalogRect.top,
                  TRUE);

        MoveWindow(m_hPlaylistView, 
                  playlistRect.left,
                  playlistRect.top, 
        	      (playlistRect.right - playlistRect.left),
                  playlistRect.bottom - playlistRect.top,
                  TRUE);

        MoveWindow(m_hPlaylistTitle, 
                  titleRect.left,
                  titleRect.top, 
        	      (titleRect.right - titleRect.left),
                  titleRect.bottom - titleRect.top,
                  TRUE);


    }
}

void MusicBrowserUI::UpdateButtonMenuStates()
{
    HMENU        hMenuRoot, hMenu;
    MENUITEMINFO sMenuItem;

    hMenuRoot = GetMenu(m_hWnd);


    // File Menu
    hMenu = GetSubMenu(hMenuRoot, 0); 


    EnableMenuItem(hMenu, ID_FILE_SAVEPLAYLIST, 
                   m_bListChanged ? MF_ENABLED : MF_GRAYED );

    SendMessage(m_hToolbar, TB_ENABLEBUTTON, 
                    ID_FILE_SAVEPLAYLIST, MAKELPARAM(m_bListChanged, 0)); 

    // start off disabled... might enable below
    EnableMenuItem(hMenu, ID_FILE_EXPORTPLAYLIST, MF_GRAYED);

    // Edit Menu
    hMenu = GetSubMenu(hMenuRoot, 1);

    // start off disabled... might enable below
    EnableMenuItem(hMenu, ID_EDIT_REMOVE, MF_GRAYED);
    SendMessage(m_hToolbar, TB_ENABLEBUTTON, ID_EDIT_REMOVE, 0); 

    EnableMenuItem(hMenu, ID_EDIT_EDITINFO, MF_GRAYED);
    SendMessage(m_hToolbar, TB_ENABLEBUTTON, ID_EDIT_EDITINFO, 0);    

    sMenuItem.cbSize = sizeof(MENUITEMINFO);
    sMenuItem.fMask =  MIIM_DATA|MIIM_TYPE;
    sMenuItem.fType = MFT_STRING;
    sMenuItem.dwTypeData = "&Remove Items...";
    sMenuItem.cch = strlen(sMenuItem.dwTypeData);

    SetMenuItemInfo(hMenu, ID_EDIT_REMOVE, false, &sMenuItem);


    // Can we move items up and down?
    uint32 index = ListView_GetItemCount(m_hPlaylistView);
    uint32 count = ListView_GetSelectedCount(m_hPlaylistView);

    if(count && m_hPlaylistView == GetFocus())
    {
        uint32 state;

        state = ListView_GetItemState(m_hPlaylistView, 
                                      index - 1, 
                                      LVIS_SELECTED);

        EnableMenuItem(hMenu, ID_EDIT_MOVEDOWN, 
                       (state & LVIS_SELECTED) ? MF_GRAYED : MF_ENABLED );

        SendMessage(m_hToolbar, TB_ENABLEBUTTON, 
                    ID_EDIT_MOVEDOWN, MAKELPARAM(!(state & LVIS_SELECTED), 0)); 

        state = ListView_GetItemState(m_hPlaylistView, 
                                      0, 
                                      LVIS_SELECTED);

        EnableMenuItem(hMenu, ID_EDIT_MOVEUP, 
                       (state & LVIS_SELECTED) ? MF_GRAYED : MF_ENABLED );

        SendMessage(m_hToolbar, TB_ENABLEBUTTON, 
                    ID_EDIT_MOVEUP, MAKELPARAM(!(state & LVIS_SELECTED), 0)); 
        
        EnableMenuItem(hMenu, ID_EDIT_REMOVE, MF_ENABLED);
        SendMessage(m_hToolbar, TB_ENABLEBUTTON, 
                    ID_EDIT_REMOVE, MAKELPARAM(TRUE, 0)); 

        EnableMenuItem(hMenu, ID_EDIT_EDITINFO, MF_ENABLED);
        SendMessage(m_hToolbar, TB_ENABLEBUTTON, 
                    ID_EDIT_EDITINFO, MAKELPARAM(TRUE, 0)); 



        sMenuItem.cbSize = sizeof(MENUITEMINFO);
        sMenuItem.fMask = MIIM_DATA|MIIM_TYPE;
        sMenuItem.fType = MFT_STRING;
        sMenuItem.dwTypeData = "&Remove Tracks from Playlist";
        sMenuItem.cch = strlen(sMenuItem.dwTypeData);

        SetMenuItemInfo(hMenu, ID_EDIT_REMOVE, false, &sMenuItem);
    }
    else
    {    
        EnableMenuItem(hMenu, ID_EDIT_MOVEUP, MF_GRAYED);
        EnableMenuItem(hMenu, ID_EDIT_MOVEDOWN, MF_GRAYED);

        SendMessage(m_hToolbar, TB_ENABLEBUTTON, 
                    ID_EDIT_MOVEUP, 0);    
        SendMessage(m_hToolbar, TB_ENABLEBUTTON, 
                    ID_EDIT_MOVEDOWN, 0); 

    }

    // what about items which deal with the treeview?

    EnableMenuItem(hMenu, ID_EDIT_ADDTRACK, MF_GRAYED);
    SendMessage(m_hToolbar, TB_ENABLEBUTTON, 
            ID_EDIT_ADDTRACK, 0); 

    //HTREEITEM treeSelect = TreeView_GetSelection(m_hMusicView);

    uint32 trackCount = 0;
    uint32 playlistCount = 0;

    trackCount = GetSelectedTrackCount();
    playlistCount = GetSelectedPlaylistCount();

    if((trackCount + playlistCount) && m_hMusicView == GetFocus())
    {
        if(!IsItemSelected(m_hNewPlaylistItem) &&
            !IsItemSelected(m_hNewPlaylistItem))
        {
            EnableMenuItem(hMenu, ID_EDIT_ADDTRACK, MF_ENABLED );
            SendMessage(m_hToolbar, TB_ENABLEBUTTON, 
                        ID_EDIT_ADDTRACK, MAKELPARAM(TRUE, 0)); 
        }

        if(!IsItemSelected(m_hPlaylistItem) &&
           !IsItemSelected(m_hNewPlaylistItem) && 
           !IsItemSelected(m_hPortableItem) &&
           !IsItemSelected(m_hNewPortableItem) &&
           !IsItemSelected(m_hAllItem))
        {
            EnableMenuItem(hMenu, ID_EDIT_REMOVE, MF_ENABLED);
            SendMessage(m_hToolbar, TB_ENABLEBUTTON, 
                    ID_EDIT_REMOVE, MAKELPARAM(TRUE, 0)); 
        }

        if(!IsItemSelected(m_hPlaylistItem) &&
           !IsItemSelected(m_hNewPlaylistItem) && 
           !IsItemSelected(m_hPortableItem) &&
           !IsItemSelected(m_hNewPortableItem) &&

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -