/******************************************************************
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();
}
Example #2
0
/*-----------------------------------------------------------------------------------------
 * º¯Êý:    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;
}