迷你界面可以使得音乐播放器更具美感,而实现迷你界面也不难,设置迷你界面主要用到 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;
运行效果