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