BOOL CBmptranceDlg::CreateWindowClass()
{
wsprintf(m_strClassname,"bamtrance_Window");
m_wc.cbSize        = sizeof(m_wc);
m_wc.style         = CS_DBLCLKS | CS_HREDRAW | CS_VREDRAW;
m_wc.lpfnWndProc   = MainWndProc;
m_wc.hInstance     = AfxGetInstanceHandle();
m_wc.lpszClassName = m_strClassname;
m_wc.hbrBackground = CreateSolidBrush( dwBackColor );
m_wc.hCursor       = LoadCursor( NULL, IDC_ARROW );
m_wc.cbClsExtra    = 0;
m_wc.cbWndExtra    = 0;
m_wc.hIcon         = NULL;
m_wc.hIconSm       = NULL;
m_wc.lpszMenuName  = NULL; if ( 0 == RegisterClassEx( &m_wc ) &&
ERROR_CLASS_ALREADY_EXISTS != GetLastError() )
return FALSE;
return TRUE;
}
成功。创建窗口时
   try
   {
m_pDev[dwCard].hWnd = CreateWindowEx(WS_EX_TOPMOST, TEXT(m_strClassname),
NULL,
dwStyle,
m_pDev[dwCard].dwDispPosX,
m_pDev[dwCard].dwDispPosY,
m_pDev[dwCard].dwDispWidth,
m_pDev[dwCard].dwDispHeight,
hDeskopWnd,
NULL, 
AfxGetInstanceHandle(),
NULL);   }
   catch (...)
   {
LPVOID lpMsgBuf;
FormatMessage( 
FORMAT_MESSAGE_ALLOCATE_BUFFER | 
FORMAT_MESSAGE_FROM_SYSTEM | 
FORMAT_MESSAGE_IGNORE_INSERTS,
NULL,
GetLastError(),
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
(LPTSTR) &lpMsgBuf,
0,
NULL 
);
// Process any inserts in lpMsgBuf.
// ...
// Display the string.
MessageBox((LPCTSTR)lpMsgBuf, "Error", MB_OK | MB_ICONINFORMATION );
// Free the buffer.
LocalFree( lpMsgBuf );
   }
  
}失败了。m_pDev[dwCard].hWnd是采集卡的句柄,hDeskopWnd父窗口句柄是一个static的,调试了,各个参数是对的。MainWndProc里面什么也没作,用的DefWindowProc处理的。
getlasterror()返回的是2。ERROR_FILE_NOT_FOUND。