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

📄 mainfrm.cpp

📁 任意点阵字模生成软件源代码
💻 CPP
📖 第 1 页 / 共 2 页
字号:
		rect.left-=1;
		rect.top+=2;
		rect.bottom += 200;
		// 创建并显示
		if (!m_txtToolBar.m_Text.Create(WS_CHILD|WS_VISIBLE|WS_BORDER/*|SS_BITMAP|SS_CENTERIMAGE*/,
			rect,&m_txtToolBar,ID_TEXTINPUT))
		{
			//m_ObjectBar.GetWindow()
			TRACE0("Failed to create combo-box\n");
			return FALSE;
		}
		m_txtToolBar.m_Text.SetWindowText("24");
	}
/*	if(m_txtToolBar.GetItemID(index)==ID_ADDBTN)
	{
		//设置指定工具项的宽度并获取新的区域 80是宽度
		m_txtToolBar.SetButtonInfo(index, ID_ADDBTN, TBBS_SEPARATOR, 60);
		m_txtToolBar.GetItemRect(index, &rect);
		//设置位置
		rect.top+=2;
		rect.right=rect.left+60;
		// 创建并显示
		if (!m_txtToolBar.m_AddBtn.Create("",WS_CHILD|WS_VISIBLE|BS_FLAT,
			rect,&m_txtToolBar,ID_ADDBTN))
		{
			TRACE0("Failed to create combo-box\n");
			return FALSE;
		}
		m_txtToolBar.m_AddBtn.SetWindowText("添加字");
	}

	if(m_txtToolBar.GetItemID(index)==ID_MODIFYBTN)
	{
		//设置指定工具项的宽度并获取新的区域 80是宽度
		m_txtToolBar.SetButtonInfo(index, ID_MODIFYBTN, TBBS_SEPARATOR, 60);
		m_txtToolBar.GetItemRect(index, &rect);
		//设置位置
//		rect.left-=80;
		rect.top+=2;
		rect.right=rect.left+60;
		// 创建并显示
		if (!m_txtToolBar.m_EditBtn.Create("",WS_CHILD|WS_VISIBLE|BS_FLAT|BS_PUSHBUTTON,
			rect,&m_txtToolBar,ID_MODIFYBTN))
		{
			TRACE0("Failed to create combo-box\n");
			return FALSE;
		}
		m_txtToolBar.m_EditBtn.EnableWindow(0);
		m_txtToolBar.m_EditBtn.SetWindowText("修改字");
	}

		if(m_txtToolBar.GetItemID(index)==ID_ADDPICBTN)
	{
		//设置指定工具项的宽度并获取新的区域 80是宽度
		m_txtToolBar.SetButtonInfo(index, ID_ADDPICBTN, TBBS_SEPARATOR, 60);
		m_txtToolBar.GetItemRect(index, &rect);
		//设置位置
//		rect.left-=80;
		rect.top+=2;
		rect.right=rect.left+60;
		// 创建并显示
		if (!m_txtToolBar.m_AddPicBtn.Create("",WS_CHILD|WS_VISIBLE|BS_FLAT,
			rect,&m_txtToolBar,ID_ADDPICBTN))
		{
			TRACE0("Failed to create combo-box\n");
			return FALSE;
		}
		m_txtToolBar.m_AddPicBtn.SetWindowText("添加图");
	}
		
		if(m_txtToolBar.GetItemID(index)==ID_DELETEBTN)
	{
		//设置指定工具项的宽度并获取新的区域 80是宽度
		m_txtToolBar.SetButtonInfo(index, ID_DELETEBTN, TBBS_SEPARATOR, 60);
		m_txtToolBar.GetItemRect(index, &rect);
		//设置位置
//		rect.left-=80;
		rect.top+=2;
		rect.right=rect.left+60;
		// 创建并显示
		if (!m_txtToolBar.m_DelBtn.Create("",WS_CHILD|WS_VISIBLE|BS_FLAT,
			rect,&m_txtToolBar,ID_DELETEBTN))
		{
			TRACE0("Failed to create combo-box\n");
			return FALSE;
		}
		m_txtToolBar.m_DelBtn.SetWindowText("删除");
	}

	if(m_txtToolBar.GetItemID(index)==ID_ADDPAGEBTN)
	{
		//设置指定工具项的宽度并获取新的区域 80是宽度
		m_txtToolBar.SetButtonInfo(index, ID_ADDPAGEBTN, TBBS_SEPARATOR, 90);
		m_txtToolBar.GetItemRect(index, &rect);
		//设置位置
		rect.top+=2;
		rect.right=rect.left+90;
		// 创建并显示
		if (!m_txtToolBar.m_AddPageBtn.Create("",WS_CHILD|WS_VISIBLE|BS_FLAT,
			rect,&m_txtToolBar,ID_ADDPAGEBTN))
		{
			TRACE0("Failed to create combo-box\n");
			return FALSE;
		}
		m_txtToolBar.m_AddPageBtn.SetWindowText("添加页");
	}
	if(m_txtToolBar.GetItemID(index)==ID_DELPAGEBTN)
	{
		//设置指定工具项的宽度并获取新的区域 80是宽度
		m_txtToolBar.SetButtonInfo(index, ID_DELPAGEBTN, TBBS_SEPARATOR, 90);
		m_txtToolBar.GetItemRect(index, &rect);
		//设置位置
		rect.top+=2;
		rect.right=rect.left+90;
		// 创建并显示
		if (!m_txtToolBar.m_DelPageBtn.Create("",WS_CHILD|WS_VISIBLE|BS_FLAT,
			rect,&m_txtToolBar,ID_DELPAGEBTN))
		{
			TRACE0("Failed to create combo-box\n");
			return FALSE;
		}
		m_txtToolBar.m_DelPageBtn.SetWindowText("删除页");
	}*/
}
fillFontFaceName();
}


void CMainFrame::fillFontFaceName()
{
    m_wndToolBarDraw.m_fontCombo.ResetContent();
    LOGFONT logfont;
    logfont.lfCharSet = DEFAULT_CHARSET;
    strcpy(logfont.lfFaceName,"");
    CClientDC dc (this);
    ::EnumFontFamiliesEx((HDC) dc,&logfont,
        (FONTENUMPROC)EnumFontFamProc,(LPARAM) this,0);
}
int CALLBACK EnumFontFamProc(LPENUMLOGFONT lpelf,LPNEWTEXTMETRIC lpntm,DWORD nFontType,long lparam)
{
	CMainFrame* pWnd = (CMainFrame*) lparam;
    if (nFontType==TRUETYPE_FONTTYPE )
	{
int bFind=FALSE;
CString fname;
for(int i=0;i<pWnd->m_wndToolBarDraw.m_fontCombo.GetCount();i++)
{
	pWnd->m_wndToolBarDraw.m_fontCombo.GetLBText(i,fname);
	if(fname==lpelf->elfLogFont.lfFaceName)
	{
		bFind=TRUE;
		break;
	}

}
if(bFind==FALSE)
	    pWnd->m_wndToolBarDraw.m_fontCombo.AddString(lpelf->elfLogFont.lfFaceName);
	}
	pWnd->m_wndToolBarDraw.m_fontCombo.SetWindowText("宋体");
	return 1;
}

BOOL CMainFrame::AddStandToolBar()
{
 CRect rect;
 m_standToolBar.GetWindowRect(&rect);
 //rect.OffsetRect(1, 0);
 //this->RecalcLayout();    //关键的一步,重新排列
// DockControlBar(&m_wndToolBarDraw, AFX_IDW_DOCKBAR_TOP, &rect);
int k=m_standToolBar.GetCount();

for(int index=0;index<m_standToolBar.GetCount();index++)
{
	if(m_standToolBar.GetItemID(index)==ID_LOCKBTN)
	{
		//设置指定工具项的宽度并获取新的区域 80是宽度
		m_standToolBar.SetButtonInfo(index, ID_LOCKBTN, TBBS_SEPARATOR, 80);
		m_standToolBar.GetItemRect(index, &rect);
		//设置位置
//		rect.left-=80;
		rect.top+=2;
		rect.right=rect.left+80;
		// 创建并显示
		if (!m_standToolBar.m_LockBtn.Create("",WS_CHILD|WS_VISIBLE|BS_CHECKBOX,
			rect,&m_standToolBar,ID_LOCKBTN))
		{
			TRACE0("Failed to create combo-box\n");
			return FALSE;
		}
		m_standToolBar.m_LockBtn.SetWindowText("位置锁定");
		m_standToolBar.m_LockBtn.SetCheck(TRUE);
	}

	if(m_standToolBar.GetItemID(index)==ID_SHOWRECTANGLE)
	{
		//设置指定工具项的宽度并获取新的区域 80是宽度
		m_standToolBar.SetButtonInfo(index, ID_SHOWRECTANGLE, TBBS_SEPARATOR, 80);
		m_standToolBar.GetItemRect(index, &rect);
		//设置位置
//		rect.left-=80;
		rect.top+=2;
		rect.right=rect.left+80;
		// 创建并显示
		if (!m_standToolBar.m_ShowRectangleBtn.Create("",WS_CHILD|WS_VISIBLE|BS_CHECKBOX,
			rect,&m_standToolBar,ID_SHOWRECTANGLE))
		{
			TRACE0("Failed to create combo-box\n");
			return FALSE;
		}
		m_standToolBar.m_ShowRectangleBtn.SetWindowText("显示边框");
		m_standToolBar.m_ShowRectangleBtn.SetCheck(FALSE);
	}
}
return 0;
}


void CMainFrame::OnSave() 
{
	// TODO: Add your command handler code here
/*	

*/
	CScreenView* pScreenVw=(CScreenView*)m_wndSplit2.GetPane(0,0);
	pScreenVw->SaveFile();
}

void CMainFrame::OnAddPageBtn() 
{
	// TODO: Add your control notification handler code here
	CWnd* pMainWnd=AfxGetApp()->m_pMainWnd;
	CMainFrame* pMainFrame=(CMainFrame*)pMainWnd;
	CScreenView* pScreenVw=(CScreenView*)m_wndSplit2.GetPane(0,0);
	CDrawVw* pDrawVw=(CDrawVw*)m_wndSplit2.GetPane(0,1);
	CPageDlg pageDlg;//=new CPageDlg;
	if(pageDlg.DoModal()==IDOK)
	{
		pScreenVw->AddPageList(pageDlg.m_InputTxt);
		pMainFrame->m_txtToolBar.m_Text.SetWindowText(pageDlg.m_InputTxt);
//		pDrawVw->CalcParameter();
		pDrawVw->DrawScreen();
	}
}

void CMainFrame::OnAddbtn() 
{
	CWnd* pMainWnd=AfxGetApp()->m_pMainWnd;
	CMainFrame* pMainFrame=(CMainFrame*)pMainWnd;
	CScreenView* pScreenVw=(CScreenView*)m_wndSplit2.GetPane(0,0);
	CDrawVw* pDrawVw=(CDrawVw*)m_wndSplit2.GetPane(0,1);
	CString str;
	pMainFrame->m_wndToolBarDraw.m_screenHeight.GetWindowText(str);
	int screenHeight=atoi(str);
	pMainFrame->m_wndToolBarDraw.m_screenWidth.GetWindowText(str);
	int screenWidth=atoi(str);
	pMainFrame->m_wndToolBarDraw.m_wordHeight.GetWindowText(str);
	int wordHeight=atoi(str);
	pMainFrame->m_wndToolBarDraw.m_wordWidth.GetWindowText(str);
	int wordWidth=atoi(str);
	int index=pMainFrame->m_wndToolBarDraw.m_fontCombo.GetCurSel();
	CString wordstr;
	m_txtToolBar.m_Text.GetWindowText(wordstr);
	CString fontStr;
	if(index>=0)
		pMainFrame->m_wndToolBarDraw.m_fontCombo.GetLBText(index,fontStr);

	pScreenVw->AddWordToPage(wordstr,screenWidth,screenHeight,wordWidth,wordHeight,fontStr);

	pDrawVw->DrawScreen();
}
void CMainFrame::OnDelPageBtn() 
{
	CScreenView* pScreenVw=(CScreenView*)m_wndSplit2.GetPane(0,0);
	CDrawVw* pDrawVw=(CDrawVw*)m_wndSplit2.GetPane(0,1);
	pScreenVw->DeletePage();

	pDrawVw->DrawScreen();
}

void CMainFrame::OnAddPicBtn() 
{
	CScreenView* pScreenVw=(CScreenView*)m_wndSplit2.GetPane(0,0);
	CDrawVw* pDrawVw=(CDrawVw*)m_wndSplit2.GetPane(0,1);
BOOL bSuccess=pScreenVw->AddPicToPage();
	pDrawVw->DrawScreen();

}

void CMainFrame::OnModifyBtn() 
{
	CScreenView* pScreenVw=(CScreenView*)m_wndSplit2.GetPane(0,0);
	CDrawVw* pDrawVw=(CDrawVw*)m_wndSplit2.GetPane(0,1);
	CWnd* pMainWnd=AfxGetApp()->m_pMainWnd;
	CMainFrame* pMainFrame=(CMainFrame*)pMainWnd;
		CString str;
		pMainFrame->m_txtToolBar.m_Text.GetWindowText(str);
	pScreenVw->ModifyWord(str);
	pDrawVw->DrawScreen();
}

void CMainFrame::OnDelWordBtn() 
{
	CScreenView* pScreenVw=(CScreenView*)m_wndSplit2.GetPane(0,0);
	CDrawVw* pDrawVw=(CDrawVw*)m_wndSplit2.GetPane(0,1);

	pScreenVw->DeleteWordOrPic();
	pDrawVw->DrawScreen();
}

void CMainFrame::OnSetbackbtn() 
{
	CScreenView* pScreenVw=(CScreenView*)m_wndSplit2.GetPane(0,0);
	CDrawVw* pDrawVw=(CDrawVw*)m_wndSplit2.GetPane(0,1);

	pScreenVw->SetObjOrder(0);
	pDrawVw->DrawScreen();
}

void CMainFrame::OnSetfrontbtn() 
{
	CScreenView* pScreenVw=(CScreenView*)m_wndSplit2.GetPane(0,0);
	CDrawVw* pDrawVw=(CDrawVw*)m_wndSplit2.GetPane(0,1);

	pScreenVw->SetObjOrder(1);
	pDrawVw->DrawScreen();

}

void CMainFrame::OnCheckLockBtn() 
{
	// TODO: Add your control notification handler code here
	bLock=!bLock;
	m_standToolBar.m_LockBtn.SetCheck(bLock);
}

void CMainFrame::OnCheckShowRectangle() 
{
	CDrawVw* pDrawVw=(CDrawVw*)m_wndSplit2.GetPane(0,1);
	bShowRectangle=!bShowRectangle;
	m_standToolBar.m_ShowRectangleBtn.SetCheck(bShowRectangle);
	pDrawVw->DrawScreen();
	
}

void CMainFrame::OnSelchangeFont() 
{
	// TODO: Add your control notification handler code here
	CScreenView* pScreenVw=(CScreenView*)m_wndSplit2.GetPane(0,0);
	CDrawVw* pDrawVw=(CDrawVw*)m_wndSplit2.GetPane(0,1);
	pScreenVw->SelChange(0);
	pDrawVw->DrawScreen();
	
}

void CMainFrame::OnSetcuoTi() 
{
	// TODO: Add your command handler code here
	CScreenView* pScreenVw=(CScreenView*)m_wndSplit2.GetPane(0,0);
	CDrawVw* pDrawVw=(CDrawVw*)m_wndSplit2.GetPane(0,1);
	bBold=!bBold;
	pScreenVw->SelChange(0);
	pDrawVw->DrawScreen();
}

void CMainFrame::OnUpdateSetcuoTi(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	pCmdUI->SetCheck(bBold);
	
}

void CMainFrame::OnXieTi() 
{
	// TODO: Add your command handler code here
	CScreenView* pScreenVw=(CScreenView*)m_wndSplit2.GetPane(0,0);
	CDrawVw* pDrawVw=(CDrawVw*)m_wndSplit2.GetPane(0,1);
	bItalic=!bItalic;
	pScreenVw->SelChange(0);
	pDrawVw->DrawScreen();

}

void CMainFrame::OnUpdateXieTi(CCmdUI* pCmdUI) 
{
	pCmdUI->SetCheck(bItalic);
	
}

void CMainFrame::OnChangeWordWidth() 
{
	CScreenView* pScreenVw=(CScreenView*)m_wndSplit2.GetPane(0,0);
	CDrawVw* pDrawVw=(CDrawVw*)m_wndSplit2.GetPane(0,1);
	pScreenVw->SelChange(0);
	pDrawVw->DrawScreen();

}

void CMainFrame::OnChangeWordHeight() 
{
	CScreenView* pScreenVw=(CScreenView*)m_wndSplit2.GetPane(0,0);
	CDrawVw* pDrawVw=(CDrawVw*)m_wndSplit2.GetPane(0,1);
	pScreenVw->SelChange(0);
	pDrawVw->DrawScreen();
	
}

void CMainFrame::OnChangeScreenWidth() 
{
	CScreenView* pScreenVw=(CScreenView*)m_wndSplit2.GetPane(0,0);
	CDrawVw* pDrawVw=(CDrawVw*)m_wndSplit2.GetPane(0,1);
	pScreenVw->SelChange(2);
	pDrawVw->DrawScreen();
	
}

void CMainFrame::OnChangeScreenHeight() 
{
	CScreenView* pScreenVw=(CScreenView*)m_wndSplit2.GetPane(0,0);
	CDrawVw* pDrawVw=(CDrawVw*)m_wndSplit2.GetPane(0,1);
	pScreenVw->SelChange(2);
	pDrawVw->DrawScreen();
	
}

void CMainFrame::OnCancelselectbtn() 
{
	CScreenView* pScreenVw=(CScreenView*)m_wndSplit2.GetPane(0,0);
	CDrawVw* pDrawVw=(CDrawVw*)m_wndSplit2.GetPane(0,1);
	pScreenVw->CancelSelect();
	pDrawVw->DrawScreen();

}

void CMainFrame::OnImport() 
{
	CScreenView* pScreenVw=(CScreenView*)m_wndSplit2.GetPane(0,0);
	CDrawVw* pDrawVw=(CDrawVw*)m_wndSplit2.GetPane(0,1);
	pScreenVw->ImportPageList();
	pDrawVw->DrawScreen();

}

void CMainFrame::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags) 
{
	// TODO: Add your message handler code here and/or call default
	CFrameWnd::OnChar(nChar, nRepCnt, nFlags);
}

void CMainFrame::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) 
{
	// TODO: Add your message handler code here and/or call default
	AfxMessageBox("dfslk");

	CFrameWnd::OnKeyDown(nChar, nRepCnt, nFlags);
}

BOOL CMainFrame::PreTranslateMessage(MSG* pMsg) 
{
	// TODO: Add your specialized code here and/or call the base class
	if(pMsg->message==WM_KEYDOWN)
	{
		if(pMsg->wParam==34)//PAGEDOWN
		{
			CDrawVw* pDrawVw=(CDrawVw*)m_wndSplit2.GetPane(0,1);
			pDrawVw->ZoomIn();
		}
		if(pMsg->wParam==33)//PAGEUP
		{
			CDrawVw* pDrawVw=(CDrawVw*)m_wndSplit2.GetPane(0,1);
			pDrawVw->ZoomOut();
		}

	}
	return CFrameWnd::PreTranslateMessage(pMsg);
}

void CMainFrame::OnDownload() 
{
	CScreenView* pScreenVw=(CScreenView*)m_wndSplit2.GetPane(0,0);
	CDrawVw* pDrawVw=(CDrawVw*)m_wndSplit2.GetPane(0,1);
	pScreenVw->DownLoad(0);

}

void CMainFrame::OnDownone() 
{
	// TODO: Add your command handler code here
	CScreenView* pScreenVw=(CScreenView*)m_wndSplit2.GetPane(0,0);
	CDrawVw* pDrawVw=(CDrawVw*)m_wndSplit2.GetPane(0,1);
	pScreenVw->DownLoad(1);
	
}

void CMainFrame::OnSupper() 
{
	// TODO: Add your command handler code here
	
}
LRESULT CMainFrame::OnProgress(WPARAM wParam, LPARAM lParam) 
{ 
	m_wndStatusBar.GetProgressCtrl().SetRange(0,lParam);
	m_wndStatusBar.OnProgress(wParam);
return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -