PopupMenu弹出菜单
CMenu MoviePopupMenu;//声明
MoviePopupMenu.CreatePopupMenu();//创建弹出菜单
根据对象类型增加弹出项
if(nTemp == WB_OBJ_FLASH && nSelectedObj == ) // FLASH对象
{
CString strPlay;
strPlay = ReadConfigText(_T("WhiteBoardMenuListText"), _T("movie_play"));
if (strPlay.IsEmpty())
{
strPlay = _T("播放");
}
CString strStop;
strStop = ReadConfigText(_T("WhiteBoardMenuListText"), _T("movie_Stop"));
if (strStop.IsEmpty())
{
strStop = _T("停止");
}
CString strPause;
strPause = ReadConfigText(_T("WhiteBoardMenuListText"), _T("movie_pause"));
if (strPause.IsEmpty())
{
strPause = _T("暂停");
}
CString strLoop;
strLoop = ReadConfigText(_T("WhiteBoardMenuListText"), _T("movie_loop"));
if (strLoop.IsEmpty())
{
strLoop = _T("循环播放");
}
if (((CWBFlash *)pObj)->m_bIsRunning)
{
if (((CWBFlash *)pObj)->m_bIsPause)
{
MoviePopupMenu.AppendMenu(MF_STRING, ID_OBMENU_MOVIE_PALY, strPlay);
MoviePopupMenu.AppendMenu(MF_GRAYED|MF_STRING, ID_OBMENU_MOVIE_PAUSE, strPause);
}
else
{
MoviePopupMenu.AppendMenu(MF_GRAYED|MF_STRING, ID_OBMENU_MOVIE_PALY, strPlay);
MoviePopupMenu.AppendMenu(MF_STRING, ID_OBMENU_MOVIE_PAUSE, strPause);
}
MoviePopupMenu.AppendMenu(MF_STRING, ID_OBMENU_MOVIE_STOP,strStop);
}
else
{
MoviePopupMenu.AppendMenu(MF_STRING, ID_OBMENU_MOVIE_PALY, strPlay);
MoviePopupMenu.AppendMenu(MF_GRAYED|MF_STRING, ID_OBMENU_MOVIE_PAUSE, strPause);
MoviePopupMenu.AppendMenu(MF_GRAYED|MF_STRING, ID_OBMENU_MOVIE_STOP, strStop);
}
MoviePopupMenu.AppendMenu(MF_SEPARATOR);//增加一条分割线
声明位图对象
CBitmap m_MoviePlayBmp; //播放
CBitmap m_MoviePauseBmp; //暂停
CBitmap m_MovieStopBmp; //停止
CBitmap m_MovieCircleBmp; //循环播放
CBitmap m_MediaCatchFrameBmp; //截图
CBitmap m_MediaSetmuteBmp; //有音
CBitmap m_MediaNoSetmuteBmp; //静音
//菜单中加载图片
//视频 MoviePopupMenu.SetMenuItemBitmaps(ID_OBMENU_MOVIE_PALY, MF_BYCOMMAND, &m_MoviePlayBmp,NULL); // 播放
MoviePopupMenu.SetMenuItemBitmaps(ID_OBMENU_MOVIE_PAUSE, MF_BYCOMMAND, &m_MoviePauseBmp,NULL); // 暂停
MoviePopupMenu.SetMenuItemBitmaps(ID_OBMENU_MOVIE_STOP, MF_BYCOMMAND, &m_MovieStopBmp,NULL); // 停止
MoviePopupMenu.SetMenuItemBitmaps(ID_OBMENU_MOVIE_CIRCLE, MF_BYCOMMAND, &m_MovieCircleBmp,NULL); // 循环播放
PopupMenu.SetMenuItemBitmaps(ID_OBMENU_MEDIA_CATCHFRAME, MF_BYCOMMAND, &m_MediaCatchFrameBmp,NULL);//截图
PopupMenu.SetMenuItemBitmaps(ID_OBMENU_MEDIA_SETMUTE, MF_BYCOMMAND, &m_MediaSetmuteBmp,&m_MediaNoSetmuteBmp); //静音
void CWhiteBoardView::LoadPopupMenuBitmap()
{
//视频
m_MoviePlayBmp.LoadBitmap(IDB_OBMENU_MOVIE_PALY); // 视频播放
TranslateBitmapSizeToFitXP(&m_MoviePlayBmp);
m_MoviePauseBmp.LoadBitmap(IDB_OBMENU_MOVIE_PAUSE); //视频暂停
TranslateBitmapSizeToFitXP(&m_MoviePauseBmp);
m_MovieStopBmp.LoadBitmap(IDB_OBMENU_MOVIE_STOP); //视频停止
TranslateBitmapSizeToFitXP(&m_MovieStopBmp);
m_MovieCircleBmp.LoadBitmap(IDB_OBMENU_MOVIE_CIRCLE); //视频循环播放
TranslateBitmapSizeToFitXP(&m_MovieCircleBmp); m_MediaCatchFrameBmp.LoadBitmap(IDB_OBMENU_MEDIA_CATCHFRAME); //截图
TranslateBitmapSizeToFitXP(&m_MediaCatchFrameBmp);
m_MediaSetmuteBmp.LoadBitmap(IDB_OBMENU_MEDIA_SETMUTE); //有音
TranslateBitmapSizeToFitXP(&m_MediaSetmuteBmp);
m_MediaNoSetmuteBmp.LoadBitmap(IDB_OBMENU_MEDIA_NOSETMUTE); //静音
TranslateBitmapSizeToFitXP(&m_MediaNoSetmuteBmp);
}
上面是载入菜单项对应的自定义位图资源声明
#define IDB_OBMENU_MOVIE_PALY 3407
#define IDB_OBMENU_MOVIE_PAUSE 3408
#define IDB_OBMENU_MOVIE_STOP 3409
#define IDB_OBMENU_MOVIE_CIRCLE 3410
//下面是菜单项的资源声明
#define ID_OBMENU_MOVIE_PALY 8822
#define ID_OBMENU_MOVIE_STOP 8823
#define ID_OBMENU_MOVIE_PAUSE 8824
#define ID_OBMENU_MOVIE_CIRCLE 8825
BOOL CWhiteBoardView::OnCommand(WPARAM wParam, LPARAM lParam)
{
UINT nItemID = LOWORD(wParam);
switch (nItemID)
{
case ID_OBMENU_MOVIE_PALY: //视频播放
{
CWBObject *pObj = g_pWBPage->FindByLayerIndex(m_dwMenuLayerIndex);
if (pObj == NULL)
{
break;
}
WB_OBJ_TYPE ntemptype = (WB_OBJ_TYPE)pObj->GetType();
if ( ntemptype== WB_OBJ_FLASH) //如果对象是flash
{
((CWBFlash *)pObj)->Start();
}
if (ntemptype == WB_OBJ_MEDIA)
{
if (((CWBMedia*)pObj)->IsActiveCreated())
{
((CWBMedia*)pObj)->MediaPlay();
}
else
{
((CWBMedia*)pObj)->SetMediaPlayState(Media_playing);
}
}
Invalidate();
//发送同步信息
XMemIni xmlObj;
pObj->SetXmlValue(xmlObj);
if (ntemptype == WB_OBJ_MEDIA || ntemptype == WB_OBJ_FLASH)
{
xmlObj.Set(KEY_MEDIA_OPERATION, WB_MOVIE_START);
}
g_pWhiteBoardView->ChangeObj(xmlObj);
}
break;
case ID_OBMENU_MOVIE_STOP: //视频停止
{
CWBObject *pObj = g_pWBPage->FindByLayerIndex(m_dwMenuLayerIndex);
if (pObj == NULL)
{
break;
}
WB_OBJ_TYPE ntemptype = (WB_OBJ_TYPE)pObj->GetType();
if (ntemptype == WB_OBJ_FLASH) //如果对象是flash
{
((CWBFlash *)pObj)->Stop();
}
if (ntemptype == WB_OBJ_MEDIA)
{
if (((CWBMedia*)pObj)->IsActiveCreated())
{
((CWBMedia*)pObj)->MediaStop();
}
else
{
((CWBMedia*)pObj)->SetMediaPlayState(Media_stop);
}
}
Invalidate();
//发送同步信息
XMemIni xmlObj;
pObj->SetXmlValue(xmlObj);
if (ntemptype == WB_OBJ_MEDIA || ntemptype == WB_OBJ_FLASH)
{
xmlObj.Set(KEY_MEDIA_OPERATION, WB_MOVIE_STOP);
}
g_pWhiteBoardView->ChangeObj(xmlObj);
}
break;
case ID_OBMENU_MOVIE_PAUSE: //视频暂停
.
.
.
}
}
.rc文件
IDB_BITMAP_EMPTY_MENU_ITEM BITMAP "res\\image\\EmptyMenuItem.bmp"
IDB_OBMENU_MOVIE_PALY BITMAP "res\\image\\Menu\\IDB_OBMENU_MOVIE_PALY.bmp"
IDB_OBMENU_MOVIE_PAUSE BITMAP "res\\image\\Menu\\IDB_OBMENU_MOVIE_PAUSE.bmp"
IDB_OBMENU_MOVIE_STOP BITMAP "res\\image\\Menu\\IDB_OBMENU_MOVIE_STOP.bmp"
IDB_OBMENU_MOVIE_CIRCLE BITMAP "res\\image\\Menu\\IDB_OBMENU_MOVIE_CIRCLE.bmp"
PopupMenu弹出菜单的更多相关文章
- Swing-JPopupMenu弹出菜单用法-入门
弹出菜单是GUI程序中非常常见的一种控件.它通常由鼠标右击事件触发,比如在windows系统桌面上右击时,会弹出一个包含“刷新”.“属性”等菜单的弹出菜单.Swing中的弹出菜单是JPopupMenu ...
- 用PopupWindow实现弹出菜单(弹出的菜单采用自定义布局)
用PopupWindow实现弹出菜单是一个比较好的方式.当然我们还有一个类PopupMenu也能实现弹出菜单,但那个太过于局限了,所以不是很推荐. 这个实例的效果是这样的:点击按钮后,一个菜 ...
- 【Android】5.6 弹出菜单(PopUp Menus)
分类:C#.Android.VS2015: 创建日期:2016-02-07 一.简介 功能描述:用户单击按钮弹出菜单.当用户选择一个菜单项,会触发MenuItemClick事件并让弹出的菜单消失:如果 ...
- Android的Toolbar(含溢出菜单设置[弹出菜单的使用])的使用PopMenu的样式
http://blog.csdn.net/yingtian648/article/details/52432438(转载) 1.在Toolbar.xml中设置弹出菜单的风格(app:popupThem ...
- 向上弹出菜单jQuery插件
插件名:柯乐义英文名:Keleyijs文件名称:jquery.keleyi.js插件功能:该插件可以让你轻易地在页面上构建一个向上弹出的二级菜单. 示例查看:http://keleyi.com/kel ...
- html5手机端遮罩弹出菜单代码
效果体验:http://hovertree.com/texiao/html5/17/ 效果图: 代码如下: <!doctype html> <html lang="zh&q ...
- DIV+CSS制作二级横向弹出菜单,略简单
没有使用JavaScript控制二级菜单的显示,结果如上图所示. 代码如下: <!DOCTYPE html> <html> <head> <meta char ...
- vc++ 如何添加右键弹出菜单
一.创建新工程 二.编辑菜单资源 1.添加菜单 按"Ctrl+R",双击"Menu"图标 2.于菜单编辑器内编辑菜单 四.添加代码(红色部分) void CCM ...
- 创建 iPhone/iOS8 弹出菜单(窗口)
基本步骤 添加视图:主视图与弹出视图 关联视图 配置弹出视图 编码实现:弹出菜单样式及控制器委托 override func prepareForSegue(segue: UIStoryboardSe ...
随机推荐
- rhel7的xfs与Oracle database
在rhel7下,安装oracle database时,能够选择xfs文件,例如以下: Requirements for Installing Oracle Database 12.1on RHEL7 ...
- DatagridView内容自动换行和换行符换行
内容自动换行: 在 DataGridView 新增 Row 时,設定 DataGridView 的 DefaultCellStyle 屬性WrapMode=true: 换行符换行: 在 DataGri ...
- platform_driver_probe 函数解析
结构体列举 // 几个结构体 // include/linux/device.h struct bus_type { const char *name; // "platform" ...
- AX88772B 驱动移植
Linux kernel 3.2.0 捏自带的AX88772B 不稳定,现用 AX88772B 官方的驱动进行移植测试. 驱动下载地址: http://www.asix.com.tw/cs/produ ...
- DRAM 各项基本参数记录
记录一下DRAM的各项基本参数 tCL CAS Latency CAS 潜伏期, 列地址寻找/读写命令执行完毕,准备要读出来,需要一个延时缓一缓 tRAS: RAS Active Timeing 行有 ...
- JavaScrip——练习(做悬浮框)
通过HTML.CSS.JSP来实现 1.首先确定通过div嵌套来实现: 大的div里放默认显示的一层,限制其总层次高,设置超出部分隐藏 小的div里放鼠标移过去时显示的一层:3行1列的表格 1.1.什 ...
- Win10如何显示系统托盘所有图标
最快就是小娜搜索通知 打开Win10“设置”,依次进入“系统 – 通知和操作”,设置界面如图: 点击“选择在任务栏上显示哪些图标”打开如图所示的界面:
- log4j.properties的配置与详细说明
1. 新建测试项目testLog,并引入jar包. 2. 在src目录下新建log4j.properties文件,然后开始配置文件. log4j.rootLogger=INFO,stdout,debu ...
- java list分组 list里面分装的都是对象 按照对象的属性来分组
http://www.iteye.com/problems/86110 —————————————————————————————————————————————————————————— List& ...
- 上手并过渡到PHP7(3)——Uniform Variable Syntax到底统一了什么
PHP7 up and running 泊学原文链接泊学实操视频 Uniform Variable Syntax 在PHP 7提出Uniform Variable Syntax之前,我们大多数人可能都 ...