我如何在对话框中指定的地方嵌入FLASH动画,我得代码在这里http://tseek.inows.com/中的testflash.rar现在地情况是他冲满了整个对话框,我只要他在指定的区域显示且不要再有右键弹出菜单---只指FLASH的右键菜单,我工程里的右键菜单不能给我屏蔽了。

解决方案 »

  1.   

    指定的区域显示:修改BOOL CTestflashDlg::OnInitDialog()中m_flashCtrl.Create("ShockwaveFlash",WS_POPUP|WS_VISIBLE,rect,this,IDC_STATIC,NULL,FALSE,NULL);
    参数rect的值。
      

  2.   

    你添加的是Shockwave Flash Object控件类。只能在显示区域弹出菜单,无法在区域外的窗体上弹出菜单。
      

  3.   

    athena521(小猪) 怎样改?能不能再看看,我得值已经变动过得,但它还是满屏呀!
      

  4.   

    CRect rect(866,513,CX,CY);
    说明就不该在左上角了呀!但实际还是在左上角!
      

  5.   

    满屏是下面的语句在起作用。你把CX,CY改一下就行了。
    int CX=::GetSystemMetrics(SM_CXSCREEN)/2;
    int CY=::GetSystemMetrics(SM_CYSCREEN)/2;
    CRect rect(0,0,CX,CY);
    //ClientToScreen(&rect);
    //::MoveWindow(GetSafeHwnd(),866,513,CX,CY,TRUE);
    ::MoveWindow(m_hWnd,0,0,CX,CY,TRUE);
    我上面说的是改变动画的大小和位置。
      

  6.   

    实在不清楚你用下面的代码替换原来的代码。
    //下面是FLASH动画在右下角
    int CX=::GetSystemMetrics(SM_CXSCREEN)/2;
    int CY=::GetSystemMetrics(SM_CYSCREEN)/2;
    CRect rect(0,0,CX,CY);
    // ClientToScreen(&rect);
    // ::MoveWindow(GetSafeHwnd(),866,513,CX,CY,TRUE);
    ::MoveWindow(m_hWnd,0,0,CX,CY,TRUE);
    // CRect rect;
    GetClientRect(&rect);//IDC_STATIC_TFLASH
    CRect rect1(10,10,300,300);
    m_flashCtrl.Create("ShockwaveFlash",WS_POPUP|WS_VISIBLE,rect1,this,IDC_STATIC,NULL,FALSE,NULL);
    // 获取应用程序所在路径
    char szCurPath[_MAX_PATH];
    HINSTANCE hInst=NULL;
    GetModuleFileName(hInst,szCurPath,_MAX_PATH);
    char* p = szCurPath;
    while(strchr(p,'\\'))
    {
    p = strchr(p,'\\');
    p++;
    }
    *p = '\0';
    CString strFilename = szCurPath; // 生成播放文件名
    strFilename += "4.swf";
    m_flashCtrl.SetMovie(strFilename);
      

  7.   

    BOOL CTestflashDlg::PreTranslateMessage(MSG* pMsg) 
    {
    // TODO: Add your specialized code here and/or call the base class
    if (
    pMsg->message==WM_KEYDOWN||
    pMsg->message==WM_SYSKEYDOWN||
    pMsg->message==WM_RBUTTONDOWN
                 ) 
    {
    return TRUE;
    }

    return CDialog::PreTranslateMessage(pMsg);
    }
    即可!