📄 screenview.cpp
字号:
bits=0;
index++;
pWordObj->buf[index]=0x00;
}
}
if(tpDC==NULL)
return;
}
void CScreenView::DrawDz(CDC *pMemDC, CWordObj *pWordObj, COLORREF color,int mode)
{
int index=0;
int bits=0;
CString str;
str=pWordObj->m_strname;
int trueWidth=pWordObj->m_width;
if(str!="pic")
{
char c=str.GetAt(0);
if(c>=0 && c<=255)
trueWidth=pWordObj->m_width/2;
}
for(int m=0;m<pWordObj->m_height;m++)
{
for(int n=0;n<trueWidth;n++)
{
int cmpvalue=pWordObj->buf[index]&(0x80>>bits);
if(cmpvalue!=0)
{
CBrush brush(color);
CBrush* pOldBrush=pMemDC->SelectObject(&brush);
CRect rc(orgx+(pWordObj->left+n)*step,orgy+(pWordObj->top+m)*step,
orgx+(pWordObj->left+n+1)*step,orgy+(pWordObj->top+m+1)*step);
if(mode==0)
pMemDC->Ellipse(&rc);
else if(mode==1)
pMemDC->FillRect(&rc,&brush);
pMemDC->SelectObject(pOldBrush);
}
bits++;
if(bits>=8)
{
bits=0;
index++;
}
}
}
if(mode==1)//取模
return;
if(pWordObj->GetIsSelected())
{
CPen pen;
pen.CreatePen(0,3,RGB(180,255,0));
CPen* pOldPen=pMemDC->SelectObject(&pen);
pMemDC->MoveTo(orgx+pWordObj->left*step,orgy+pWordObj->top*step);
pMemDC->LineTo(orgx+(pWordObj->left+trueWidth)*step,orgy+pWordObj->top*step);
pMemDC->LineTo(orgx+(pWordObj->left+trueWidth)*step,orgy+(pWordObj->top+pWordObj->m_height)*step);
pMemDC->LineTo(orgx+pWordObj->left*step,orgy+(pWordObj->top+pWordObj->m_height)*step);
pMemDC->LineTo(orgx+(pWordObj->left)*step,orgy+pWordObj->top*step);
pMemDC->SelectObject(pOldPen);
}
if(bShowRectangle)
{
CPen pen;
pen.CreatePen(2,1,RGB(0,255,255));
CPen* pOldPen=pMemDC->SelectObject(&pen);
pMemDC->MoveTo(orgx+(pWordObj->left)*step,orgy+(pWordObj->top)*step);
pMemDC->LineTo(orgx+(pWordObj->left+trueWidth )*step,orgy+(pWordObj->top)*step);
pMemDC->LineTo(orgx+(pWordObj->left+trueWidth )*step,orgy+(pWordObj->top+pWordObj->m_height )*step);
pMemDC->LineTo(orgx+(pWordObj->left)*step,orgy+(pWordObj->top+pWordObj->m_height )*step);
pMemDC->LineTo(orgx+(pWordObj->left)*step,orgy+(pWordObj->top)*step);
pMemDC->SelectObject(pOldPen);
}
}
void CScreenView::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
{
// TODO: Add your message handler code here and/or call default
CFormView::OnChar(nChar, nRepCnt, nFlags);
}
void CScreenView::SelChange(int index)
{
if(bReDraw==FALSE)
return;
CWnd* pMainWnd=AfxGetApp()->m_pMainWnd;
CMainFrame* pMainFrame=(CMainFrame*)pMainWnd;
if(GetDocument()->pCurStagementObj==NULL)
return;
if(index==1)
{
CString rString;
CComboBox* pCombo;
int index=pMainFrame->m_wndToolBarDraw.m_colorCombo.GetCurSel();
pMainFrame->m_wndToolBarDraw.m_colorCombo.GetLBText(index,rString);
//GetDlgItemText(IDC_COMBOCOLOR,rString);
COLORREF color;
if(rString=="红")
color=RGB(255,0,0);
else if(rString=="绿")
color=RGB(0,255,0);
else if(rString=="黄")
color=RGB(255,255,0);
else
color=RGB(255,255,255);
POSITION pos = GetDocument()->pCurStagementObj->wordList.GetHeadPosition();
CWordObj* pZkObject;
CObject* pObject;
int m,n;
while (pos != NULL)
{
pObject =GetDocument()->pCurStagementObj->wordList.GetAt(pos);
pZkObject=(CWordObj*)pObject;
// pZkObject->m_RectTracker.m_rect = pZkObject->m_RectLP;
//pResistor->Draw(pDC);
if (pZkObject->GetIsSelected())
{
pZkObject->m_color=color;
}
GetDocument()->pCurStagementObj->wordList.GetNext(pos);
}
}
else
{
POSITION pos = GetDocument()->pCurStagementObj->wordList.GetHeadPosition();
CString str;
pMainFrame->m_wndToolBarDraw.m_screenWidth.GetWindowText(str);
int screenwidth=atoi(str);
GetDocument()->pCurStagementObj->screenwidth=screenwidth;
pMainFrame->m_wndToolBarDraw.m_screenHeight.GetWindowText(str);
int screenheight=atoi(str);
GetDocument()->pCurStagementObj->screenheight=screenheight;
if(index==2)
{
CDrawVw* pDrawVw=(CDrawVw*)pMainFrame->m_wndSplit2.GetPane(0,1);
pDrawVw->FirstCalc();
}
CWordObj* pZkObject;
CObject* pObject;
int m,n;
while (pos != NULL)
{
pObject = GetDocument()->pCurStagementObj->wordList.GetAt(pos);
pZkObject=(CWordObj*)pObject;
if (pZkObject->GetIsSelected())
{
pMainFrame->m_wndToolBarDraw.m_wordHeight.GetWindowText(str);
pZkObject->m_height=atoi(str)>0?atoi(str):pZkObject->m_height;
pMainFrame->m_wndToolBarDraw.m_wordWidth.GetWindowText(str);
pZkObject->m_width=atoi(str)>0?atoi(str):pZkObject->m_width;
pZkObject->bBold=pMainFrame->bBold;
pZkObject->bItalic=pMainFrame->bItalic;
CString fontStr;
int index=pMainFrame->m_wndToolBarDraw.m_fontCombo.GetCurSel();
if(index>0)
{
pMainFrame->m_wndToolBarDraw.m_fontCombo.GetLBText(index,fontStr);
pZkObject->m_font=fontStr;
}
else
pZkObject->m_font="宋体";
CreateDz(NULL,pZkObject,pZkObject->m_strname,pZkObject->m_font,pZkObject->m_width,pZkObject->m_height);
}
GetDocument()->pCurStagementObj->wordList.GetNext(pos);
}
}
}
void CScreenView::OnSelchangePagelist()
{
CWnd* pMainWnd=AfxGetApp()->m_pMainWnd;
CMainFrame* pMainFrame=(CMainFrame*)pMainWnd;
CDrawVw* pDrawVw=(CDrawVw*)pMainFrame->m_wndSplit2.GetPane(0,1);
bReDraw=FALSE;
if(m_PageListBox.GetCount()==0)
{
pDrawVw->DrawScreen();
return;
}
int index=m_PageListBox.GetCurSel();
CString strName;
m_PageListBox.GetText(index,strName);
pMainFrame->m_txtToolBar.m_Text.SetWindowText(strName);
POSITION pos=GetDocument()->m_pageList.GetHeadPosition();
CStagementObj* pStagementObj;
CObject* pObject;
while(pos!=NULL)
{
pObject=GetDocument()->m_pageList.GetAt(pos);
pStagementObj=(CStagementObj*)pObject;
if(pStagementObj->strName == strName )
{
GetDocument()->pCurStagementObj=pStagementObj;
CString str;
str.Format("%d",pStagementObj->screenwidth);
pMainFrame->m_wndToolBarDraw.m_screenWidth.SetWindowText(str);
str.Format("%d",pStagementObj->screenheight);
pMainFrame->m_wndToolBarDraw.m_screenHeight.SetWindowText(str);
break;
}
GetDocument()->m_pageList.GetNext(pos);
}
pDrawVw->DrawScreen();
bReDraw=TRUE;
}
//DEL void CScreenView::OnSave()
//DEL {
//DEL
//DEL }
void CScreenView::DeleteAllPage()
{
CStagementObj* pStagementObj;
CWordObj* pWordObj;
CObject* pObj1;
CObject* pObj2;
POSITION pagePos=GetDocument()->m_pageList.GetHeadPosition();
while(pagePos!=NULL)
{
pObj1=GetDocument()->m_pageList.GetAt(pagePos);
pStagementObj=(CStagementObj*)pObj1;
if(pStagementObj->buf!=NULL)
delete[] pStagementObj->buf;
POSITION wordPos=pStagementObj->wordList.GetHeadPosition();
while(wordPos!=NULL)
{
pObj2=pStagementObj->wordList.GetAt(wordPos);
pWordObj=(CWordObj*)pObj2;
if(pWordObj->buf!=NULL)
delete []pWordObj->buf;
if(pWordObj->imagedata!=NULL)
delete []pWordObj->imagedata;
if(pWordObj!=NULL)
delete pWordObj;
pStagementObj->wordList.RemoveAt(wordPos);
wordPos=pStagementObj->wordList.GetHeadPosition();
}
if(pStagementObj!=NULL)
{
delete pStagementObj;
pStagementObj=NULL;
}
GetDocument()->m_pageList.RemoveAt(pagePos);
pagePos=GetDocument()->m_pageList.GetHeadPosition();
}
}
void CScreenView::DrawGraph(CDC *pMemDC,int mode)
{
}
void CScreenView::OnUpdateModifybtn(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
pCmdUI->Enable(bModiftBtnEnable);
}
void CScreenView::OnButton1()
{
DrawScreen();
}
LRESULT CScreenView::OnCommnucation(WPARAM wParam, LPARAM lParam)
{
//CString s1="";
if(m_SendToCL2005Type==SENDALLPIC)
{
if(CL2005_Answer==0)
{
CL2005_SendChar[CL2005_SendNum]=wParam;
CL2005_SendNum++;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -