⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 screenview.cpp

📁 任意点阵字模生成软件源代码
💻 CPP
📖 第 1 页 / 共 5 页
字号:
			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 + -