/****************************************************************** Function : SetScreenData Date : 2015-05-10 16:05:25 Author : xiaoheike Parameter : 无 Return : void Desc : 接收教师机发来的屏幕图像数据并调用显示方法 ******************************************************************/ void CMulticastDlg::SetScreenData() { // 接收到教师机的一幅屏幕图像数据的第几块的序号 int id = 0; while (false == m_isMulticastStop) { MULTICASTDATA multicastData; memset(&multicastData, 0, sizeof(MULTICASTDATA)); m_socketCenter.RecvDataUDP(m_socketMulticast, (char*)&multicastData, sizeof(MULTICASTDATA)); switch (multicastData.infoType) { case 1: // 位图数据信息 SetBmpTransDataNotLast(multicastData, id); break; case 2: // 接收最后一次发送的数据 SetBmpTransDataLast(multicastData, id); break; default: MessageBox(_T("未知的图像数据信息"), _T("提示"), MB_OK); CleanData(); exit(1); } ShowBmp(multicastData); } // CleanData(); }
/*----------------------------------------------------------------------------------------- * º¯Êý: gui_draw_picture() * * ÃèÊö: »Ò»¸öͼƬ¿Ø¼þ **---------------------------------------------------------------------------------------*/ void gui_draw_picture(gui_widget * pic) { int x, y, x1, y1, move; COLOR bkcolor; gui_picture_private * t; FamesAssert(pic); if(!pic) return; if(pic->flag & GUI_WIDGET_FLAG_NEED_REFRESH){ x = pic->real_rect.x; y = pic->real_rect.y; x1 = __gui_make_x2(x, pic->real_rect.width); y1 = __gui_make_y2(y, pic->real_rect.height); bkcolor = pic->bkcolor; if(bkcolor==0) bkcolor = WIDGET_BKCOLOR; if(pic->style & PICTURE_STYLE_TRANSPARENT){ goto goto1; } if(pic->style & PICTURE_STYLE_MODAL_FRAME){ move = gui_widget_draw_modal_frame(x, y, x1, y1); ___gui_widget_xy_move(move); } if(pic->style & PICTURE_STYLE_CLIENT_BDR){ move = gui_widget_draw_client_bdr(x, y, x1, y1); ___gui_widget_xy_move(move); } if(pic->style & PICTURE_STYLE_STATIC_BDR){ move = gui_widget_draw_static_bdr(x, y, x1, y1); ___gui_widget_xy_move(move); } if(pic->style & PICTURE_STYLE_NO_BORDER){ ;/* NO_BORDER */ } else if(pic->style & PICTURE_STYLE_BORDER2){ move = gui_widget_draw_normal_bdr(x, y, x1, y1); ___gui_widget_xy_move(move); } else { move = gui_widget_draw_subside_bdr(x, y, x1, y1); ___gui_widget_xy_move(move); } if(!gdi_draw_box(x, y, x1, y1, bkcolor)){ ; } goto1: t = (gui_picture_private *)pic->private_data; if(t){ SetBmpRect(&t->bmpinfo, (x1-x)+1, (y1-y)+1); ShowBmp(x, y, &t->bmpinfo); } } else { ; } gui_clr_widget_changed(pic); return; }