自己動手開發音樂播放器《八》迷你介面的實現
阿新 • • 發佈:2019-01-25
迷你介面可以使得音樂播放器更具美感,而實現迷你介面也不難,設定迷你介面主要用到 SetWindowPos函式
SetWindowPos函式是改變視窗的大小和位置
BOOL WINAPI SetWindowPos(
_In_ HWND hWnd, // 視窗控制代碼
_In_opt_ HWND hWndInsertAfter, //在z序中的位於被置位的視窗前的視窗控制代碼。該引數必須為一個視窗控制代碼,或下列值之一:
_In_ int X, // 視窗位置的左邊界
_In_ int Y, //視窗位置的頂邊界
_In_ int cx, //視窗的寬度
_In_ int cy, //視窗的高度
_In_ UINT uFlags: //視窗尺寸和定位的標誌。該引數可以是下列值的組合:
);
定義一個全域性變數用於音樂播放器中迷你型播放器的切換
/************************************************************************** 設定迷你模式所需的全域性變數 **************************************************************************/ static int flag = 0;//標記音樂播放器為迷你模式
定義一個函式SetMiniMode用於切換成迷你型或非迷你型
/************************************************************************** 函式名: void SetMiniMode(HWND hwnd) 函式功能: 設定迷你模式 **************************************************************************/ void SetMiniMode(HWND hwnd) { //得到選單控制代碼 HMENU hMenu = GetMenu(hwnd); if(0 == flag) { //選中迷你模式 CheckMenuItem(hMenu,ID_MENUMINIMODE,MF_CHECKED); //將視窗變成迷你模式視窗 SetWindowPos(hwnd,0,122,75,385,445,SWP_NOMOVE | SWP_NOZORDER); flag = 1;//識別符號,標示視窗為普通視窗 } else { //不選擇迷你模式 CheckMenuItem(hMenu,ID_MENUMINIMODE,MF_UNCHECKED); //將視窗還原成普通視窗 SetWindowPos(hwnd,0,122,75,615,495,SWP_NOMOVE | SWP_NOZORDER); flag = 0;//標示視窗為迷你視窗 } }
在void Main_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify)中新增下面程式碼
//迷你模式
case ID_MENUMINIMODE:
{
SetMiniMode(hwnd);
}
break;
執行效果