directdraw问题请教

bigdiesel 2009-01-05 10:04:07
我想把这段在线程中实现的画语图的代码,用directx重新做一次,解决我现在画图慢和覆盖的问题,以前没接触过directx,请大家指点一下如何改,修改要求时间比较急,请高手帮我看看,给我一些具体的指点,多谢!!!
void drawpicSpec() //画语图
{
int count;
int nLevel;
count=4096;
CDrawpictureData* DrawpictureData=GetDrawpictureData();
ASSERT(DrawpictureData);//获取数据
CColorConf* ColorConf=GetColorConf();
ASSERT(ColorConf); //获取

CMainFrame *pFrame=(CMainFrame *)AfxGetApp()->m_pMainWnd;
CWBSpecView *pView=(CWBSpecView *)(pFrame->m_pWBSpecview);
CWnd *Specpic=pView->GetDlgItem(IDC_PIC_SPEC);
CDC *SpecpicDC=Specpic->GetDC();
CRect Rect2;
Specpic->GetClientRect(Rect2);
int w=Rect2.Width();
int h=Rect2.Height();

for(int i=0;i<count;i++)
{
MSG message;
while(::PeekMessage(&message,NULL,0,0,PM_REMOVE))
{
::TranslateMessage(&message);
::DispatchMessage(&message);
}
nLevel=ColorConf->Comppow(float(DrawpictureData->uiSonaData[i])); //计算颜色值
SpecpicDC->SetPixel(i*Rect2.right/count,Rect2.Height()-1,ColorConf->m_nColor[nLevel]);
}
SpecpicDC->BitBlt(0,Rect2.top-1,w,h,SpecpicDC,0,0,SRCCOPY);
Specpic->ReleaseDC(SpecpicDC);
}
...全文
129 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
bigdiesel 2009-01-15
  • 打赏
  • 举报
回复
大家有没有写directx,一些实例程序,微软上下载的大多是讲3D的,另外,我想把屏幕一整行用不同颜色画出,有没有除了setpix()更好的方法呢
R_hgt 2009-01-06
  • 打赏
  • 举报
回复
帮顶
zzz822163 2009-01-05
  • 打赏
  • 举报
回复
装个directx8,看看里面的例子
fandh 2009-01-05
  • 打赏
  • 举报
回复
帮顶!不知道!
hmzzrcs 2009-01-05
  • 打赏
  • 举报
回复
directx8及以前的版本才有Directdraw,如果要用DirectX9的话得在3D模式下画
zzz822163 2009-01-05
  • 打赏
  • 举报
回复
要装directx8才有
StretchBlt可以实现放缩
bigdiesel 2009-01-05
  • 打赏
  • 举报
回复
或者有一种解决方法,可以先解决了我画图覆盖的问题,由于我控件的大小可以改变,如果是在内存中画好,贴出来,怎么在控件大小改变后调整内存中bitmap的大小呢
bigdiesel 2009-01-05
  • 打赏
  • 举报
回复
我从微软上下了一个最新版的directx,好像没这方面的例子,都是讲3d图形操作的

19,464

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧