中年人学C语言Windows程序设计,35 WIN32图形界面音乐播放器实例代码2

这篇博客介绍了如何在C语言环境下,使用Win32 API为音乐播放器添加播放列表功能。通过创建LISTBOX控件,实现了用户点击选择不同歌曲进行播放的功能。当用户单击列表项时,程序会切换到所选歌曲;双击时,直接播放双击的歌曲。代码中包含了LISTBOX的创建、位置设置以及响应用户交互的事件处理。
摘要由CSDN通过智能技术生成

中年人学C语言Windows程序设计,35 WIN32图形界面音乐播放器实例代码2
接上一篇内容,上一篇没有播放列表,只能单曲播放,现在将代码升级为播放列表的形式,可以进行列表播放

通过listbox加入播放列表,点击列表可以切换歌曲
在这里插入图片描述
新增listbox代码

hListBox = CreateWindow(TEXT("LISTBOX"), TEXT("我是个BOX"),
				WS_CHILD | WS_VISIBLE | WS_BORDER | WS_VSCROLL | LBS_HASSTRINGS | LBS_NOTIFY,
				CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
				hWnd, (HMENU)4,
				((LPCREATESTRUCT)lParam)->hInstance, NULL);
			SendMessageW(hListBox, WM_SETFONT, (WPARAM)hFont, (LPARAM)NULL);

设置listbox的位置

MoveWindow(//拖动大小,改变条位置
				hListBox,
				0, 2*cHeighChar,
				cxClient, cyClient,
				TRUE);

单击和双击LISTBOX时的动作
左键点击listbox的内容则切换filename,让后点击播放音乐
如果双击listbox的内容,直接播放双击的歌曲

case 4:
					switch (HIWORD(wParam))
					{
						case LBN_SELCHANGE:
							{
								// Get current selection.
								iIndex = SendMessage(hListBox, LB_GETCURSEL, 0, 0);//选中ID
								iLength = SendMessage(hListBox, LB_GETTEXTLEN, iIndex, 0) + 1;//选中文本长度
								pVarName = calloc(iLength, sizeof(TCHAR));//开辟内存
								//memset(pVarName, 0, sizeof(pVarName));
								SendMessage(hListBox, LB_GETTEXT, iIndex, (LPARAM)pVarName);//获取当前选中
								lstrcpy(fileName, pVarName);
								flagChange = 1;
								free(pVarName);//释放内存
							}
							break;

						case LBN_DBLCLK://双击列表
						{
							// Get current selection.
							iIndex = SendMessage(hListBox, LB_GETCURSEL, 0, 0);//选中ID
							iLength = SendMessage(hListBox, LB_GETTEXTLEN, iIndex, 0) + 1;//选中文本长度
							pVarName = calloc(iLength, sizeof(TCHAR));//开辟内存
							//memset(pVarName, 0, sizeof(pVarName));
							SendMessage(hListBox, LB_GETTEXT, iIndex, (LPARAM)pVarName);//获取当前选中
							//MessageBox(hWnd, pVarName, TEXT("提示信息"), MB_ICONINFORMATION);
							lstrcpy(fileName, pVarName);
							flagChange = 1;
							free(pVarName);//释放内存
							//SendMessage(hWnd, IDM_PLAY, 0, 0);
							SendMessage(hWnd, WM_COMMAND, IDM_PLAY, 0);//播放音乐
						}
						break;
					}
					
					break;
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值