📄 readtxt.cpp
字号:
m_redleddc1->BitBlt(m_showrect.left,m_showrect.bottom-1-ii,m_showrect.Width(),1,m_redleddc,0,m_showrect.Height()-1-ii,SRCCOPY);
m_greenleddc1->BitBlt(m_showrect.left,m_showrect.top+ii,m_showrect.Width(),1,m_greenleddc,0,ii,SRCCOPY);
m_greenleddc1->BitBlt(m_showrect.left,m_showrect.bottom-1-ii,m_showrect.Width(),1,m_greenleddc,0,m_showrect.Height()-1-ii,SRCCOPY);
m_led->GetData(m_redledbitmap1,1);
m_led->GetData(m_greenledbitmap1,2);
m_led->WriteToLed();
Sleep(font_s);
}
break;
case 12:
for(ii=m_showrect.Height()/2;ii>=0;ii--)
{
m_dc->BitBlt(m_showrect.left,m_showrect.top+ii,m_showrect.Width(),1,m_memdc,0,ii,SRCCOPY);
m_dc->BitBlt(m_showrect.left,m_showrect.bottom-1-ii,m_showrect.Width(),1,m_memdc,0,m_showrect.Height()-1-ii,SRCCOPY);
m_redleddc1->BitBlt(m_showrect.left,m_showrect.top+ii,m_showrect.Width(),1,m_redleddc,0,ii,SRCCOPY);
m_redleddc1->BitBlt(m_showrect.left,m_showrect.bottom-1-ii,m_showrect.Width(),1,m_redleddc,0,m_showrect.Height()-1-ii,SRCCOPY);
m_greenleddc1->BitBlt(m_showrect.left,m_showrect.top+ii,m_showrect.Width(),1,m_greenleddc,0,ii,SRCCOPY);
m_greenleddc1->BitBlt(m_showrect.left,m_showrect.bottom-1-ii,m_showrect.Width(),1,m_greenleddc,0,m_showrect.Height()-1-ii,SRCCOPY);
m_led->GetData(m_redledbitmap1,1);
m_led->GetData(m_greenledbitmap1,2);
m_led->WriteToLed();
Sleep(font_s);
}
break;
case 13:
for(ii=0;ii<(m_showrect.Height()/2+1);ii++)
{
m_dc->BitBlt(m_showrect.left+ii,m_showrect.top+ii,1,m_showrect.Height()-2*ii,m_memdc,ii,ii,SRCCOPY);
m_dc->BitBlt(m_showrect.right-ii-1,m_showrect.top+ii,1,m_showrect.Height()-2*ii,m_memdc,m_showrect.Width()-1-ii,ii,SRCCOPY);
m_dc->BitBlt(m_showrect.left+ii,m_showrect.top+ii,m_showrect.Width()-2*ii,1,m_memdc,ii,ii,SRCCOPY);
m_dc->BitBlt(m_showrect.left+ii,m_showrect.bottom-1-ii,m_showrect.Width()-2*ii,1,m_memdc,ii,m_showrect.Height()-1-ii,SRCCOPY);
m_redleddc1->BitBlt(m_showrect.left+ii,m_showrect.top+ii,1,m_showrect.Height()-2*ii,m_redleddc,ii,ii,SRCCOPY);
m_redleddc1->BitBlt(m_showrect.right-1-ii,m_showrect.top+ii,1,m_showrect.Height()-2*ii,m_redleddc,m_showrect.Width()-1-ii,ii,SRCCOPY);
m_redleddc1->BitBlt(m_showrect.left+ii,m_showrect.top+ii,m_showrect.Width()-2*ii,1,m_redleddc,ii,ii,SRCCOPY);
m_redleddc1->BitBlt(m_showrect.left+ii,m_showrect.bottom-1-ii,m_showrect.Width()-2*ii,1,m_redleddc,ii,m_showrect.Height()-1-ii,SRCCOPY);
m_greenleddc1->BitBlt(m_showrect.left+ii,m_showrect.top+ii,1,m_showrect.Height()-2*ii,m_greenleddc,ii,ii,SRCCOPY);
m_greenleddc1->BitBlt(m_showrect.right-1-ii,m_showrect.top+ii,1,m_showrect.Height()-2*ii,m_greenleddc,m_showrect.Width()-1-ii,ii,SRCCOPY);
m_greenleddc1->BitBlt(m_showrect.left+ii,m_showrect.top+ii,m_showrect.Width()-2*ii,1,m_greenleddc,ii,ii,SRCCOPY);
m_greenleddc1->BitBlt(m_showrect.left+ii,m_showrect.bottom-1-ii,m_showrect.Width()-2*ii,1,m_greenleddc,ii,m_showrect.Height()-1-ii,SRCCOPY);
m_led->GetData(m_redledbitmap1,1);
m_led->GetData(m_greenledbitmap1,2);
m_led->WriteToLed();
Sleep(font_s);
}
break;
case 14:
for(ii=m_showrect.Height()/2;ii>=0;ii--)
{
m_dc->BitBlt(m_showrect.left+ii,m_showrect.top+ii,1,m_showrect.Height()-2*ii,m_memdc,ii,ii,SRCCOPY);
m_dc->BitBlt(m_showrect.right-1-ii,m_showrect.top+ii,1,m_showrect.Height()-2*ii,m_memdc,m_showrect.Width()-1-ii,ii,SRCCOPY);
m_dc->BitBlt(m_showrect.left+ii,m_showrect.top+ii,m_showrect.Width()-2*ii,1,m_memdc,ii,ii,SRCCOPY);
m_dc->BitBlt(m_showrect.left+ii,m_showrect.bottom-1-ii,m_showrect.Width()-2*ii,1,m_memdc,ii,m_showrect.Height()-1-ii,SRCCOPY);
m_redleddc1->BitBlt(m_showrect.left+ii,m_showrect.top+ii,1,m_showrect.Height()-2*ii,m_redleddc,ii,ii,SRCCOPY);
m_redleddc1->BitBlt(m_showrect.right-1-ii,m_showrect.top+ii,1,m_showrect.Height()-2*ii,m_redleddc,m_showrect.Width()-1-ii,ii,SRCCOPY);
m_redleddc1->BitBlt(m_showrect.left+ii,m_showrect.top+ii,m_showrect.Width()-2*ii,1,m_redleddc,ii,ii,SRCCOPY);
m_redleddc1->BitBlt(m_showrect.left+ii,m_showrect.bottom-1-ii,m_showrect.Width()-2*ii,1,m_redleddc,ii,m_showrect.Height()-1-ii,SRCCOPY);
m_greenleddc1->BitBlt(m_showrect.left+ii,m_showrect.top+ii,1,m_showrect.Height()-2*ii,m_greenleddc,ii,ii,SRCCOPY);
m_greenleddc1->BitBlt(m_showrect.right-1-ii,m_showrect.top+ii,1,m_showrect.Height()-2*ii,m_greenleddc,m_showrect.Width()-1-ii,ii,SRCCOPY);
m_greenleddc1->BitBlt(m_showrect.left+ii,m_showrect.top+ii,m_showrect.Width()-2*ii,1,m_greenleddc,ii,ii,SRCCOPY);
m_greenleddc1->BitBlt(m_showrect.left+ii,m_showrect.bottom-1-ii,m_showrect.Width()-2*ii,1,m_greenleddc,ii,m_showrect.Height()-1-ii,SRCCOPY);
m_led->GetData(m_redledbitmap1,1);
m_led->GetData(m_greenledbitmap1,2);
m_led->WriteToLed();
Sleep(font_s);
}
break;
}
Sleep(font_delay*1000);
m_pshowwnd->ReleaseDC(m_dc);
m_memdc->DeleteDC();
m_bitmap->DeleteObject();
delete m_bitmap;
delete m_memdc;
m_redleddc->DeleteDC();
m_redledbitmap->DeleteObject();
delete m_redledbitmap;
delete m_redleddc;
m_greenleddc->DeleteDC();
m_greenledbitmap->DeleteObject();
delete m_greenledbitmap;
delete m_greenleddc;
m_redleddc1->DeleteDC();
m_redledbitmap1->DeleteObject();
delete m_redledbitmap1;
delete m_redleddc1;
m_greenleddc1->DeleteDC();
m_greenledbitmap1->DeleteObject();
delete m_greenledbitmap1;
delete m_greenleddc1;
}
void CShowTxt::ScrollStepByStep()
{
CRect rc;
int jj;
CDC* m_dc;
CDC* m_memdc;
CBitmap* m_bitmap;
CRect m_rc;
POSITION m_pos;
CDC* m_redleddc;
CBitmap* m_redledbitmap;
CDC* m_greenleddc;
CBitmap* m_greenledbitmap;
CDC* m_redleddc1;
CBitmap* m_redledbitmap1;
CDC* m_greenleddc1;
CBitmap* m_greenledbitmap1;
m_dc=m_pshowwnd->GetDC();
m_memdc=new CDC;
m_memdc->CreateCompatibleDC(m_dc);
m_bitmap=new CBitmap;
m_bitmap->CreateCompatibleBitmap(m_dc,m_size.cx,m_size.cy);
m_memdc->SelectObject(m_bitmap);
m_redleddc=new CDC;
m_redleddc->CreateCompatibleDC(m_dc);
m_redledbitmap=new CBitmap;
m_redledbitmap->CreateBitmap(m_size.cx,m_size.cy,1,1,NULL);
m_redleddc->SelectObject(m_redledbitmap);
m_greenleddc=new CDC;
m_greenleddc->CreateCompatibleDC(m_dc);
m_greenledbitmap=new CBitmap;
m_greenledbitmap->CreateBitmap(m_size.cx,m_size.cy,1,1,NULL);
m_greenleddc->SelectObject(m_greenledbitmap);
m_redleddc1=new CDC;
m_redleddc1->CreateCompatibleDC(m_dc);
m_redledbitmap1=new CBitmap;
m_redledbitmap1->CreateBitmap(m_size.cx,m_size.cy,1,1,NULL);
m_redleddc1->SelectObject(m_redledbitmap1);
m_greenleddc1=new CDC;
m_greenleddc1->CreateCompatibleDC(m_dc);
m_greenledbitmap1=new CBitmap;
m_greenledbitmap1->CreateBitmap(m_size.cx,m_size.cy,1,1,NULL);
m_greenleddc1->SelectObject(m_greenledbitmap1);
CBrush m_brush;
m_brush.CreateSolidBrush(RGB(0,0,0));
m_rc.SetRect(0,0,m_size.cx,m_size.cy);
m_memdc->FillRect(m_rc,&m_brush);
m_redleddc1->FillRect(m_rc,&m_brush);
m_greenleddc1->FillRect(m_rc,&m_brush);
ToMemDC(m_memdc,FALSE,1,0);
ToMemDC(m_redleddc,FALSE,1,1);
ToMemDC(m_greenleddc,FALSE,1,2);
// if(m_ptopdrawtxt)
// {
// ToOneTxtMemDC(m_dc,m_ptopdrawtxt,m_oldrect.left,m_oldrect.top,0,1,TRUE);
// ToOneTxtMemDC(m_redleddc1,m_ptopdrawtxt,m_oldrect.left,m_oldrect.top,1,1,TRUE);
// ToOneTxtMemDC(m_greenleddc1,m_ptopdrawtxt,m_oldrect.left,m_oldrect.top,2,1,TRUE);
// }
POSITION pos;
m_TitleRowNO=0;
m_BottomRowNO=0;
for(int iii=0;iii<m_topdrawtxtList.GetCount();iii++)
// for(int iii=m_topdrawtxtList.GetCount()-1;iii>=0;iii--)
{
pos=m_topdrawtxtList.FindIndex(iii);
m_ptopdrawtxt=(CDrawTxt*)m_topdrawtxtList.GetAt(pos);
if(m_ptopdrawtxt)
{
// ToOneTxtMemDC(m_dc,m_ptopdrawtxt,m_oldrect.left,m_oldrect.top,0,1,1);
// ToOneTxtMemDC(m_redleddc1,m_ptopdrawtxt,m_oldrect.left,m_oldrect.top,1,1,1);
// ToOneTxtMemDC(m_greenleddc1,m_ptopdrawtxt,m_oldrect.left,m_oldrect.top,2,1,1);
m_TitleRowNO++;
ToOneTxtMemDC(m_dc,m_ptopdrawtxt,m_oldrect.left,m_oldrect.top+iii*(m_ptopdrawtxt->maxhight+m_ptopdrawtxt->space),0,1,1);
ToOneTxtMemDC(m_redleddc1,m_ptopdrawtxt,m_oldrect.left,m_oldrect.top+iii*(m_ptopdrawtxt->maxhight+m_ptopdrawtxt->space),1,1,1);
ToOneTxtMemDC(m_greenleddc1,m_ptopdrawtxt,m_oldrect.left,m_oldrect.top+iii*(m_ptopdrawtxt->maxhight+m_ptopdrawtxt->space),2,1,1);
}
}
for(iii=0;iii<m_bottomdrawtxtList.GetCount();iii++)
{
pos=m_bottomdrawtxtList.FindIndex(iii);
m_pbottomdrawtxt=(CDrawTxt*)m_bottomdrawtxtList.GetAt(pos);
if(m_pbottomdrawtxt)
{
m_BottomRowNO++;
ToOneTxtMemDC(m_dc,m_pbottomdrawtxt,m_oldrect.left,m_size.cy-(iii+1)*(m_pbottomdrawtxt->maxhight+m_oldrect.top),0,1,2);
ToOneTxtMemDC(m_redleddc1,m_pbottomdrawtxt,m_oldrect.left,m_size.cy-(iii+1)*(m_pbottomdrawtxt->maxhight+m_oldrect.top),1,1,2);
ToOneTxtMemDC(m_greenleddc1,m_pbottomdrawtxt,m_oldrect.left,m_size.cy-(iii+1)*(m_pbottomdrawtxt->maxhight+m_oldrect.top),2,1,2);
}
}
m_rc.SetRect(m_showrect.left,m_showrect.top+1,m_showrect.Width()+m_showrect.left,m_showrect.Height()+m_showrect.top);
if((m_pos=m_listdrawtxt.GetHeadPosition())!=NULL)
for(jj=0;jj<((CDrawTxt*)m_listdrawtxt.GetHead())->maxhight+((CDrawTxt*)m_listdrawtxt.GetHead())->space;jj++)
{
m_dc->ScrollDC(0,-1,m_rc,NULL,NULL,NULL);
m_dc->BitBlt(m_showrect.left,m_showrect.bottom-1,m_rc.Width(),1,m_memdc,0,jj,SRCCOPY);
//m_redleddc1->ScrollDC(0,-1,m_rc,NULL,NULL,NULL);
//m_greenleddc1->ScrollDC(0,-1,m_rc,NULL,NULL,NULL);
m_redleddc1->BitBlt(m_showrect.left,m_showrect.bottom-1,m_rc.Width(),1,m_redleddc,0,jj,SRCCOPY);
m_greenleddc1->BitBlt(m_showrect.left,m_showrect.bottom-1,m_rc.Width(),1,m_greenleddc,0,jj,SRCCOPY);
m_led->GetOneData(m_redledbitmap1,1,m_showrect.top,m_showrect.bottom);
m_led->GetOneData(m_greenledbitmap1,2,m_showrect.top,m_showrect.bottom);
m_led->WriteToLed();
Sleep(font_s);
}
Sleep(font_delay*1000);
m_pshowwnd->ReleaseDC(m_dc);
m_memdc->DeleteDC();
m_bitmap->DeleteObject();
delete m_bitmap;
delete m_memdc;
m_redleddc->DeleteDC();
m_redledbitmap->DeleteObject();
delete m_redledbitmap;
delete m_redleddc;
m_greenleddc->DeleteDC();
m_greenledbitmap->DeleteObject();
delete m_greenledbitmap;
delete m_greenleddc;
m_redleddc1->DeleteDC();
m_redledbitmap1->DeleteObject();
delete m_redledbitmap1;
delete m_redleddc1;
m_greenleddc1->DeleteDC();
m_greenledbitmap1->DeleteObject();
delete m_greenledbitmap1;
delete m_greenleddc1;
}
void CShowTxt::ScrollRToL()
{
CRect rc;
int jj;
CDC* m_dc;
CDC* m_memdc;
CBitmap* m_bitmap;
CRect m_rc;
POSITION m_pos;
CDC* m_redleddc;
CBitmap* m_redledbitmap;
CDC* m_greenleddc;
CBitmap* m_greenledbitmap;
CDC* m_redleddc1;
CBitmap* m_redledbitmap1;
CDC* m_greenleddc1;
CBitmap* m_greenledbitmap1;
m_dc=m_pshowwnd->GetDC();
m_memdc=new CDC;
m_memdc->CreateCompatibleDC(m_dc);
m_bitmap=new CBitmap;
m_bitmap->CreateCompatibleBitmap(m_dc,m_size.cx,m_size.cy);
m_memdc->SelectObject(m_bitmap);
m_redleddc=new CDC;
m_redleddc->CreateCompatibleDC(m_dc);
m_redledbitmap=new CBitmap;
m_redledbitmap->CreateBitmap(m_size.cx,m_size.cy,1,1,NULL);
m_redleddc->SelectObject(m_redledbitmap);
m_greenleddc=new CDC;
m_greenleddc->CreateCompatibleDC(m_dc);
m_greenledbitmap=new CBitmap;
m_greenledbitmap->CreateBitmap(m_size.cx,m_size.cy,1,1,NULL);
m_greenleddc->SelectObject(m_greenledbitmap);
m_redleddc1=new CDC;
m_redleddc1->CreateCompatibleDC(m_dc);
m_redledbitmap1=new CBitmap;
m_redledbitmap1->CreateBitmap(m_size.cx,m_size.cy,1,1,NULL);
m_redleddc1->SelectObject(m_redledbitmap1);
m_greenleddc1=new CDC;
m_greenleddc1->CreateCompatibleDC(m_dc);
m_greenledbitmap1=new CBitmap;
m_greenledbitmap1->CreateBitmap(m_size.cx,m_size.cy,1,1,NULL);
m_greenleddc1->SelectObject(m_greenledbitmap1);
CBrush m_brush;
m_brush.CreateSolidBrush(RGB(0,0,0));
m_rc.SetRect(0,0,m_size.cx,m_size.cy);
m_memdc->FillRect(m_rc,&m_brush);
m_redleddc1->FillRect(m_rc,&m_brush);
m_greenleddc1->FillRect(m_rc,&m_brush);
ToMemDC(m_memdc,TRUE,1,0);
ToMemDC(m_redleddc,TRUE,1,1);
ToMemDC(m_greenleddc,TRUE,1,2);
POSITION pos;
m_TitleRowNO=0;
m_BottomRowNO=0;
for(int iii=0;iii<m_topdrawtxtList.GetCount();iii++)
{
pos=m_topdrawtxtList.FindIndex(iii);
m_ptopdrawtxt=(CDrawTxt*)m_topdrawtxtList.GetAt(pos);
if(m_ptopdrawtxt)
{
m_TitleRowNO++;
ToOneTxtMemDC(m_dc,m_ptopdrawtxt,m_oldrect.left,m_oldrect.top+iii*(m_ptopdrawtxt->maxhight+m_ptopdrawtxt->space),0,1,1);
ToOneTxtMemDC(m_redleddc1,m_ptopdrawtxt,m_oldrect.left,m_oldrect.top+iii*(m_ptopdrawtxt->maxhight+m_ptopdrawtxt->space),1,1,1);
ToOneTxtMemDC(m_greenleddc1,m_ptopdrawtxt,m_oldrect.left,m_oldrect.top+iii*(m_ptopdrawtxt->maxhight+m_ptopdrawtxt->space),2,1,1);
}
}
for(iii=0;iii<m_bottomdrawtxtList.GetCount();iii++)
{
pos=m_bottomdrawtxtList.FindIndex(iii);
m_pbottomdrawtxt=(CDrawTxt*)m_bottomdrawtxtList.GetAt(pos);
if(m_pbottomdrawtxt)
{
m_BottomRowNO++;
ToOneTxtMemDC(m_dc,m_pbottomdrawtxt,m_oldrect.left,m_size.cy-(iii+1)*(m_pbottomdrawtxt->maxhight+m_oldrect.top),0,1,2);
ToOneTxtMemDC(m_redleddc1,m_pbottomdrawtxt,m_oldrect.left,m_size.cy-(iii+1)*(m_pbottomdrawtxt->maxhight+m_oldrect.top),1,1,2);
ToOneTxtMemDC(m_greenleddc1,m_pbottomdrawtxt,m_oldrect.left,m_size.cy-(iii+1)*(m_pbottomdrawtxt->maxhight+m_oldrect.top),2,1,2);
}
}
int m_cxscreen,m_cxoff=0;
m_rc.SetRect(m_showrect.left,m_showrect.top,m_showrect.Width()+m_showrect.left,m_showrect.Height()+m_showrect.top);
m_cxscreen=GetSystemMetrics(SM_CXSCREEN);
m_cxoff=m_cxscreen-m_showrect.Width();
// m_cxoff=1024-m_showrect.Width();
if((m_pos=m_listdrawtxt.GetHeadPosition())!=NULL)
{
for(jj=0;jj<Duan_len*font_width;jj+=2) //wanli
{
if( m_cxoff>=0)
{
m_dc->ScrollDC(-2,0,m_rc,NULL,NULL,NULL);
m_dc->BitBlt(m_showrect.right-2,m_showrect.top,2,m_showrect.Height(),m_memdc,jj,0,SRCCOPY);
}
else
{
m_dc->ScrollDC(-2,0,m_rc,NULL,NULL,NULL);
m_dc->BitBlt(m_showrect.right-2-jj+m_cxoff,m_showrect.top,jj+2,m_showrect.Height(),m_memdc,0,0,SRCCOPY);
}
m_redleddc1->BitBlt(m_showrect.right-2,m_showrect.top,2,m_showrect.Height(),m_redleddc,jj,0,SRCCOPY);
if(m_padd->m_oneortwo)
m_greenleddc1->BitBlt(m_showrect.right-2,m_showrect.top,2,m_showrect.Height(),m_greenleddc,jj,0,SRCCOPY);
m_led->GetOneDataRL(m_redledbitmap1,1,m_showrect.top,m_showrect.bottom);
if(m_padd->m_oneortwo)
m_led->GetOneDataRL(m_greenledbitmap1,2,m_showrect.top,m_showrect.bottom);
m_led->WriteToLed();
Sleep(font_s);
}
}
Sleep(font_delay*1000);
m_pshowwnd->ReleaseDC(m_dc);
m_memdc->DeleteDC();
m_bitmap->DeleteObject();
delete m_bitmap;
delete m_memdc;
m_redleddc->DeleteDC();
m_redledbitmap->DeleteObject();
delete m_redledbitmap;
delete m_redleddc;
m_greenleddc->DeleteDC();
m_greenledbitmap->DeleteObject();
delete m_greenledbitmap;
delete m_greenleddc;
m_redleddc1->DeleteDC();
m_redledbitmap1->DeleteObject();
delete m_redledbitmap1;
delete m_redleddc1;
m_greenleddc1->DeleteDC();
m_greenledbitmap1->DeleteObject();
delete m_greenledbitmap1;
delete m_greenleddc1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -