荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: 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软件 网络书店