大致程序:
如此创建一个窗口
AtlAxWinInit();
if (pcw == NULL)
pcw = new CAxWindow();
if (pcw->IsWindow())
pcw->DestroyWindow(); RECT rc=rect;
AdjustWindowRect(&rc, 0, FALSE);
pcw->Create(NULL, &rc, flash_clsid_c, 0);然后
viewobject->Draw(DVASPECT_CONTENT, -1, NULL, NULL, NULL, hdcCompatible, &rectl, &rectl, NULL, NULL);
注释:
//程序目的:画出一个directx控件显示的内容
//IViewObjectEx *viewobject
//rectl = rc
//hdcCompatible是块绘图内存(大小同rc)
这样虽然是能画出来,但是画出来的位置不是正在pcw窗口上,而是向右上角偏移了一段距离,这是什么原因?希望帮忙解释一下!
如此创建一个窗口
AtlAxWinInit();
if (pcw == NULL)
pcw = new CAxWindow();
if (pcw->IsWindow())
pcw->DestroyWindow(); RECT rc=rect;
AdjustWindowRect(&rc, 0, FALSE);
pcw->Create(NULL, &rc, flash_clsid_c, 0);然后
viewobject->Draw(DVASPECT_CONTENT, -1, NULL, NULL, NULL, hdcCompatible, &rectl, &rectl, NULL, NULL);
注释:
//程序目的:画出一个directx控件显示的内容
//IViewObjectEx *viewobject
//rectl = rc
//hdcCompatible是块绘图内存(大小同rc)
这样虽然是能画出来,但是画出来的位置不是正在pcw窗口上,而是向右上角偏移了一段距离,这是什么原因?希望帮忙解释一下!
RECT rc={0,0,400,400};
pcw->Create(NULL, &rc, flash_clsid_c, 0);
pcw->GetClientRect(&rc);
// rc={0,0,394,368} ?????????????现请教原因以及解决方法!!!
MSDN上连一点说明都没有!!!!