UpdateAllViews(NULL,NULL,NULL);//更新视图
/////////////////////////////////////
}
void CClientView::OnDraw(CDC* pDC)
{//显示接收到的位图信息
CDocument* pDoc = GetDocument();
// TODO: add draw code here
if(lpData==NULL) return;
BITMAP myBITMAP;
myBITMAP.bmBits=btm.bmBits;
myBITMAP.bmBitsPixel=btm.bmBitsPixel;
myBITMAP.bmHeight=btm.bmHeight;
myBITMAP.bmPlanes=btm.bmPlanes;
myBITMAP.bmType=btm.bmType;
myBITMAP.bmWidth=btm.bmWidth;
myBITMAP.bmWidthBytes=btm.bmWidthBytes;
BITMAPINFOHEADER bih;
bih.biBitCount=myBITMAP.bmBitsPixel;
bih.biClrImportant=0;
bih.biClrUsed=0;
bih.biCompression=0;
bih.biHeight=myBITMAP.bmHeight;
bih.biPlanes=1;
bih.biSize=sizeof(BITMAPINFOHEADER);
bih.biSizeImage=myBITMAP.bmWidthBytes*myBITMAP.bmHeight;
bih.biWidth=myBITMAP.bmWidth;
bih.biXPelsPerMeter=0;
bih.biYPelsPerMeter=0;
/////////////////////////
CBitmap tbitmap;
if(tbitmap.CreateBitmapIndirect(&myBITMAP)==NULL)
MessageBox("b mull");
if(tbitmap.m_hObject==NULL)MessageBox("NULL");
// CPaintDC tdc(this);
CDC tmemdc;
tmemdc.CreateCompatibleDC(pDC);
SetDIBits(tmemdc.m_hDC,tbitmap,0,btm.bmHeight,lpData,(BITMAPINFO*)&bih,DIB_RGB_COLORS);
CRect trect;
GetClientRect(&trect);
CBitmap* lpOldbit=tmemdc.SelectObject(&tbitmap);
pDC->StretchBlt(0,0,trect.Width(),trect.Height(),
&tmemdc,0,0,myBITMAP.bmWidth,
myBITMAP.bmHeight,SRCCOPY);
}
 逆风编程精品
四、尾声
我在本机上测试了程序,是可以运行得很好的,但是当我在我们寝室的两台机子对联的时候
出现了问题,我想可能是因为SetDIBits()函数的时间消耗比较的大,再又由于网络的原因所以导致一些问题。
而且默认的 settimer 是1.5秒是不是时间上应该多放一点。
祝大家编程快乐。谢谢! 本文章更多内容:<<上一页 - 1 - 2 |