因加密的需要, 我创建了一个播放myflash控件,在该控件调用了CShockwaveFlash控件。在IE调用myflash控件。
flash不能响应方向键,但是可以响应其他字母键。也可以播放。在对话框可以调用该程序。也可以响应方向键
有人说是放向键盘是控制IE滚动条垂直和水平方向。
代码如下:CShockwaveFlash m_Flash;int CmyflashCtrl::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (COleControl::OnCreate(lpCreateStruct) == -1)
return -1;
m_Flash.Create(NULL, WS_VISIBLE|WS_CHILD, CRect(50,50,100,100), this, IDC_SHOCKWAVEFLASH1);
m_Flash.LoadMovie(0,"D:\\TDDOWNLOAD\\flash代码\\PlayFlash\\PlayFlash\\youxi.swf");
}
1 大家说说是怎么回事,怎么可以让flash 响应键盘方向键事件.
2 有人说可以通过PreTranslateMessage消息进行转发给m_Flash,具体怎么转发,请教!
在此小弟谢谢,散分酬谢!
flash不能响应方向键,但是可以响应其他字母键。也可以播放。在对话框可以调用该程序。也可以响应方向键
有人说是放向键盘是控制IE滚动条垂直和水平方向。
代码如下:CShockwaveFlash m_Flash;int CmyflashCtrl::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (COleControl::OnCreate(lpCreateStruct) == -1)
return -1;
m_Flash.Create(NULL, WS_VISIBLE|WS_CHILD, CRect(50,50,100,100), this, IDC_SHOCKWAVEFLASH1);
m_Flash.LoadMovie(0,"D:\\TDDOWNLOAD\\flash代码\\PlayFlash\\PlayFlash\\youxi.swf");
}
1 大家说说是怎么回事,怎么可以让flash 响应键盘方向键事件.
2 有人说可以通过PreTranslateMessage消息进行转发给m_Flash,具体怎么转发,请教!
在此小弟谢谢,散分酬谢!
在 PreTranslateMessage 里 把消息通过 IOleInPlaceObjectWindowless::OnWindowMessage()给flash
没看到你写FlashCall ,也没有FSCommand 函数,你崩溃什么?http://hi.baidu.com/jjzhang166/blog/item/2e01be8b024bf5759e2fb4cd.html
{
if ( pMsg->message == WM_KEYDOWN )
{
// 读取键盘值
DWORD vKey = pMsg->wParam; //wParam中存放键盘上字符的虚拟码
LONG keyData = pMsg->lParam;
switch( pMsg->wParam ) //使用pMsg->wParam拦截回车键
{
case VK_RETURN :
DoReturnKey();
return 1; break;
}
}return CFormView::PreTranslateMessage(pMsg);
}
自己拦截后在post给你要的窗口
我已经解决了
1 首先激活控件
COleControl::OnActivateInPlace(TRUE,NULL);
2 消息转发
BOOL CCtrl::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
//消息转发flash
CString msg;
msg.Format(" PreTranslateMessage(pMsg->message=%d,pMsg->wParam=%d,pMsg->lParam=%d) ",
pMsg->message,pMsg->wParam,pMsg->lParam);
//OutputDebugString(msg);
if (pMsg->message==WM_KEYDOWN)
{
switch(pMsg->wParam)
{
case VK_TAB:
case VK_RETURN:
case VK_LEFT:
case VK_RIGHT:
case VK_UP:
case VK_DOWN:
m_Flash.SendMessage(pMsg->message,pMsg->wParam,pMsg->lParam);
return TRUE;
break;
default:
break;
}
}
return COleControl::PreTranslateMessage(pMsg);
}