📄 mainfrm.cpp
字号:
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 + -