荔园在线
荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀
[回到开始]
[上一篇][下一篇]
发信人: oopilix (优雅的), 信区: Visual
标 题: [fr]一个Flash控件
发信站: 荔园晨风BBS站 (Sun Jun 1 12:27:40 2003), 站内信件
用flash控件做的flash播放器怎样用自己的右键菜单替换它自带的菜单。
我从CShockwaveFlash派生了一个CFlashWnd类,
在CFlashWnd中加了
WM_MOUSEMOVE;
WM_RBOTTOMDOWN
还加了自己的右键菜单,但都没有反应。
1. 你能解释一下为什么要重载
void CMyWnd::PreSubclassWindow()
吗?
MSDN上说的不太详细,我还是不太理解。
2. SetMenu管什么用的呀,我把它注释掉,程序也可以运行
void CMyWnd::PreSubclassWindow()
{
// TODO: Add your specialized code here and/or call the base class
// SetMenu(TRUE);
CShockwaveFlash::PreSubclassWindow();
}
3. 在我用m_flash.Create(...)创建的flash控件中
你的程序中的那些功能怎么不能实现啊,
我用了
void CMyWnd::PreSubclassWindow()
{
// TODO: Add your specialized code here and/or call the base class
// SetMenu(TRUE);
CShockwaveFlash::PreSubclassWindow();
}
也不行。
answer:
1 那个函数是当窗口创建后子类化时调用的。
2 因为我把基类的OnRButtonDown()注消了,所以它不会调用FLASH的右键消息。
3 应该不会有问题,因为那个函数是Create()会调,在对话框应用时也会调的。
-
Flash 有一个接口函数可以控制自身右键菜单是否弹出。
你可以重载Flash控件的WM_CONTEXTMENU消息,在这个消息中弹出自己的菜单。
如果不行的话,重载对话框的PreTranslateMessage()函数,在这个里面弹出自己的菜单。
注意这个函数中,只有当pMsg->hwnd == Flash.m_hWnd时才能弹出自己的菜单 。
--
※ 修改:·oopilix 於 Jun 1 12:40:09 修改本文·[FROM: 61.144.235.39]
※ 来源:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 61.144.235.39]
[回到开始]
[上一篇][下一篇]
荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店