代码如下:
        // 创建FALSH窗口
if (!m_ShockwaveFlash.Create("MyFlash", WS_CHILD | WS_VISIBLE, CRect(0, 0, rc.right, rc.bottom), this, 102))
{
    CString str;
    str.Format("%d", GetLastError());
    AfxMessageBox(str);
}        同样的代码放在exe中就可以创建成功!

解决方案 »

  1.   

    DLL本身有窗口么? 如果没有 你传this给Flash控件那么因为this不是窗口类指针 Flash空间没有父窗口是创建不成功的。这种情况写可以通过实现传入一个父窗口指针的方法来实现。
      

  2.   

    对话框有的,而且对话框能显示出来,我试着动态创建别的控件,也都可以成功,我是在对话框的Oncreate事件中创建的,请指教!!!
    代码这样的:int CPlayFlashDlg::OnCreate(LPCREATESTRUCT lpCreateStruct) 
    {
    if (CDialog::OnCreate(lpCreateStruct) == -1)
    return -1; // TODO: Add your specialized creation code here
    // 创建FALSH窗口
    if (!m_ShockwaveFlash.Create("MyFlash", WS_CHILD | WS_VISIBLE, CRect(0, 0, rc.right, rc.bottom), this, 102))
    {
    CString str;
    str.Format("%d", GetLastError());
    AfxMessageBox(str);
    } return 0;
    }