我想在ActiveX控件中加载位图,在控件中加入位图后,编译,在测试容器里测试都没有错,都能正常显示位图。但是当我把ActiveX控件Insert到创建的对话框中时,出现了非法操作提示,经过调试定位之后,发现错误出在加载位图那段代码。我加载位图是在ondraw里面进行的,应该是ondraw在刷新时位图本身已经存在,再加载的时候就报错了。控件中的代码是这样的:
CBitmap bitmap1;
bitmap1.LoadBitmap(IDB_Bridge);
CDC dcMemory1;
CBitmap* pOldBmp1;
dcMemory1.CreateCompatibleDC(pDC);
pOldBmp1=dcMemory1.SelectObject(&bitmap1);
pDC->BitBlt(m_ptOrigin.x+m_startposition/3,m_ptOrigin.y+m_D4Length+m_D5Length+m_D6Length+m_D7Length+m_D8Length,20,20,&dcMemory1,0,0,SRCCOPY);
dcMemory1.SelectObject(pOldBmp1);
bitmap1.DeleteObject();
我也试过在oncreate中添加代码,但貌似不能显示位图。请教各位大虾,怎样实现在ActiveX控件中加载位图后,又能在对话框中正确Insert控件呢?我指的是不出现非法操作提示。
CBitmap bitmap1;
bitmap1.LoadBitmap(IDB_Bridge);
CDC dcMemory1;
CBitmap* pOldBmp1;
dcMemory1.CreateCompatibleDC(pDC);
pOldBmp1=dcMemory1.SelectObject(&bitmap1);
pDC->BitBlt(m_ptOrigin.x+m_startposition/3,m_ptOrigin.y+m_D4Length+m_D5Length+m_D6Length+m_D7Length+m_D8Length,20,20,&dcMemory1,0,0,SRCCOPY);
dcMemory1.SelectObject(pOldBmp1);
bitmap1.DeleteObject();
我也试过在oncreate中添加代码,但貌似不能显示位图。请教各位大虾,怎样实现在ActiveX控件中加载位图后,又能在对话框中正确Insert控件呢?我指的是不出现非法操作提示。
DEBUG ASSERTION FAILDE F:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\ctlnownd.cpp line:298
F:\dd\vctools\vc7libs\ship\atlmfc\include\afxwin2.inl line:132