MFC音乐播放器

一、继承CButton 实现按钮自绘

1.ON_WM_SETCURSOR() 改变指针

BOOL C2PicBtn::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)
{

::SetCursor(LoadCursor(NULL, IDC_HAND));

return true;//CButton::OnSetCursor(pWnd, nHitTest, message);
}

2.绘制bitmap指定颜色透明

TransparentBlt(dc->GetSafeHdc(),   //目标dc

        0,    //x

        0,    //y

rect.Width()*0.8,    //宽度

rect.Height()*0.8,    //高度

memDC.GetSafeHdc(),  //源dc

0, 0, bitStruct.bmWidth, bitStruct.bmHeight,  //与目标dc 参数类型相同

RGB(255, 0, 255)    //目标颜色

);

3.重绘通过虚函数DrawItem 不是消息  另外按钮owner draw 设为true接受自绘

4.向父窗口发送消息

消息类型 BN_CLICKED  WM_COMMAND的一种 绑定方法ON_BN_CLICKED(id,pfn)

void CMyCtr::PostClickEvent()
{
CWnd* parent = GetParent();
if (parent != NULL)
{
WPARAM wp = MAKEWPARAM(GetDlgCtrlID(), BN_CLICKED);
LPARAM lp = (LPARAM)m_hWnd;
parent->PostMessage(WM_COMMAND, wp, lp);
}
}

parent->SendMessage(WM_USER_ITEMDBCLCK, wp,lp);  绑定方式 ON_MESSAGE(WM_USER_ITEMDBCLCK, OnItemBDCLCK)

自定义消息类型

#define WM_USER_ITEMDBCLCK WM_USER+1

create窗口带滚动条

dwStyle = dwStyle|WS_VSCROLL | WS_CHILD | WS_VISIBLE;

滚动条响应函数

void MyMusicList::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值

CRect rect;
GetClientRect(&rect);
int minpos = 0, maxpos = 0;
maxpos = curBottom - rect.Height();
if (maxpos < 0)maxpos = 1;
SetScrollRange(SB_VERT, minpos, maxpos);
int curpos = 0;
curpos = GetScrollPos(SB_VERT);
switch (nSBCode)
{
case SB_TOP:curpos = minpos; break;
case SB_BOTTOM: curpos = maxpos; break;
case SB_ENDSCROLL:break;
case SB_LINEUP:if (curpos>minpos)curpos-=5; break;
case SB_LINEDOWN:if (curpos < maxpos)curpos+=5; break;
case SB_THUMBPOSITION:curpos = nPos; break;
case SB_THUMBTRACK:curpos = nPos; break;
case SB_PAGEDOWN:
{
SCROLLINFO info;
GetScrollInfo(SB_VERT, &info, SIF_ALL);
if (curpos < maxpos)
curpos = min(maxpos, curpos + (int)info.nPage);

}break;
case SB_PAGEUP:
{
SCROLLINFO info;
GetScrollInfo(SB_VERT, &info, SIF_ALL);
if (curpos > minpos)
curpos = max(minpos, curpos - (int)info.nPage);

}break;
}
if (curpos > maxpos || curpos < minpos)curpos = 0;
SetScrollPos(SB_VERT, curpos);
ScrollWindow(0, curTop-curpos);
curTop = curpos;
UpdateWindow();
// CWnd::OnVScroll(nSBCode, nPos, pScrollBar);
}

滚轮滚动控制滚动条

BOOL MyMusicList::OnMouseWheel(UINT nFlags, short zDelta, CPoint pt)
{

if (zDelta < 0)
{
OnVScroll(SB_LINEDOWN, GetScrollPos(SB_VERT), GetScrollBarCtrl(SB_VERT));
}
else if (zDelta > 0)
{
OnVScroll(SB_LINEUP, GetScrollPos(SB_VERT), GetScrollBarCtrl(SB_VERT));
}
return CWnd::OnMouseWheel(nFlags, zDelta, pt);
}

时间: 2024-10-12 03:47:54

MFC音乐播放器的相关文章

[MFC] MFC音乐播放器 傻瓜级教程 网络 搜索歌曲 下载

>目录< >----------------------< 1.建立工程  1.建立一个MFC工程,命名为Tao_Music 2.选择为基本对话框 3.包含Windows Sockts 4.使用静态链接库 [方便一会直接生成的exe文件单独可以发布] 2. 搭建界面  1. 拖入控件: 2. 控件拖入并摆好 3. 控件属性设置: 3. 写代码实现功能  1.变量绑定: 2.加入图片资源 3.新建mp3类: 4.修改Tao_MusicDlg.h 5.修改Tao_Music.cpp 6

【MFC】MCI音乐播放器

MFC MCI音乐播放器 win10下截图 xp下截图 待作业认证结束 上传源码

SE Springer小组之《Spring音乐播放器》可行性研究报告三、四

3 对现有系统的分析 由于本次可行性分析主要是建立在团队自行实现一个音乐软件的目标上,并不是在一个现有系统的基础上开发改进的新系统.因此这里将分析一款市面上已经存在的音乐软件(以下称为W音乐),并为之后开发“Spring音乐播放器”提供一定的参考. 3.1处理流程和数据流程 说明现有系统的基本的处理流程和数据流程.此流程可用图表即流程图的形式表示,并加以叙述. 图2 基本处理流程图 用户启动M音乐后,可以选择在网络音乐库中查找歌曲并下载,也可以从本地音乐库中查找想听的歌曲,然后进行播放.本地音乐

Android实现音乐播放器(一)

Graphical User Interface 本篇文章记录了我实现Android简单音乐播放器的过程,(一)中介绍了怎么构建音乐播放器的前端页面.首先大家看一下,界面最后是这样的(界面有点粗陋) 音乐文件列表是从SD卡中读取出来的. 首先我们先在Layout里面创建Music Player的GUI,diagram如下图所示: 根据diagram我们在activity_main.xml写出如下代码: <LinearLayout xmlns:android="http://schemas.

手把手教你做音乐播放器(八)桌面小工具(上)

第8节 桌面小工具 桌面小工具是可以放置在主界面的.快速控制应用的小助手.例如我们的音乐小工具,它可以帮助用户在桌面上就完成音乐的暂停.播放.切换等操作,而不需要启动应用本身. 在安卓系统中,我们也常常叫它App widget. 实现一个App widget要经过以下几个步骤, 创建一个App widget类,让它继承自AppWidgetProvider,例如AnddleMusicAppWidget类: 放在res\layout目录下,为App widget的界面定义一个布局,例如anddle_

毕业设计——基于STM32的音乐播放器设计(一)

基于STM32的音乐播放器设计, 源代码下载地址:http://download.csdn.net/detail/cxp2205455256/8334021      SD卡文件下载地址:http://download.csdn.net/detail/cxp2205455256/8334089 电路图下载地址:文件太大了,上传不了....... 以下是截图: 1.硬件电路 2.软件主界面 3.音乐播放器界面 4.音乐定时播放界面 5.音乐列表界面 6.日历功能界面 9.温度功能界面 10.计算器

Xamarin.Android开发音乐播放器

最近.Net开源着实让C#火了一把,好久就听说Mono for Android一直没静下心来看,上周末找来看看,确实不错,前台界面axml编写跟Java安卓开发毫无区别,后台用C#其实很多windows下的方法都可以用,做一个安卓音乐播放器,主要实现音乐播放,上一曲下一曲,音乐播放列表,随机播放,扫描SD卡内所有音乐. 先show一组界面啊,话说有图有真相啊: 项目结构如图: Lrc是歌词处理方法 MusicService是安卓服务播放音乐,服务Broadcast,以及界面接收Receiver

html网页音乐播放器自带播放列表

基于网页的音乐播放器demo  http://pan.baidu.com/s/1dDgm7HR 自己diy了一个手机端在线音乐播放器演示地址http://shanxi2014.com/zhuandizhi/dom.php 全面支持手机端浏览器. 主要修改引用路径(不要修改文件相对存放地址) 第二就是正则拼接参数了 <script src="/city/js/libs/jquery-1.10.2.min.js"></script> <script src=&

【源码分享】mui实现简单的手机音乐播放器

mui实现简单的手机音乐播放器 最近先来无事,我用mui写了一个可以跨页面控制的音乐播放器.主要功能有上一曲,下一曲,播放,暂停,感兴趣的可以继续看下去. 说的总是不实在,直接上源码,有兴趣的可以读下注释. 1首页代码 ①首页的html代码 1 <a> 2 <i id="bofang" class="iconfont icon-play-o"></i> <!--就是一个播放按钮没啥特殊的--> 3 </a>