📄 mainfrm.cpp
字号:
// MainFrm.cpp : implementation of the CMainFrame class
//
#include "stdafx.h"
#include "Screen.h"
#include "MainFrm.h"
#include "screenview.h"
#include "myeditvw.h"
#include "listvw.h"
#include "drawvw.h"
#include "pagedlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CMainFrame
int CALLBACK EnumFontFamProc(LPENUMLOGFONT lpelf,LPNEWTEXTMETRIC lpntm,DWORD nFontType,long lparam);
IMPLEMENT_DYNCREATE(CMainFrame, CFrameWnd)
BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
//{{AFX_MSG_MAP(CMainFrame)
ON_WM_CREATE()
ON_WM_SIZING()
ON_WM_SIZE()
ON_COMMAND(ID_SAVE, OnSave)
ON_BN_CLICKED(ID_ADDPAGEBTN, OnAddPageBtn)
ON_BN_CLICKED(ID_ADDBTN, OnAddbtn)
ON_COMMAND(ID_DELPAGEBTN, OnDelPageBtn)
ON_BN_CLICKED(ID_ADDPICBTN, OnAddPicBtn)
ON_BN_CLICKED(ID_MODIFYBTN, OnModifyBtn)
ON_BN_CLICKED(ID_DELETEBTN, OnDelWordBtn)
ON_COMMAND(ID_SETBACKBTN, OnSetbackbtn)
ON_COMMAND(ID_SETFRONTBTN, OnSetfrontbtn)
ON_BN_CLICKED(ID_LOCKBTN, OnCheckLockBtn)
ON_BN_CLICKED(ID_SHOWRECTANGLE, OnCheckShowRectangle)
ON_CBN_SELCHANGE(ID_SETFONT, OnSelchangeFont)
ON_COMMAND(ID_SETCUOTI, OnSetcuoTi)
ON_UPDATE_COMMAND_UI(ID_SETCUOTI, OnUpdateSetcuoTi)
ON_COMMAND(ID_SETXIETI, OnXieTi)
ON_UPDATE_COMMAND_UI(ID_SETXIETI, OnUpdateXieTi)
ON_EN_CHANGE(ID_SETWORDWIDTH, OnChangeWordWidth)
ON_EN_CHANGE(ID_SETWORDHEIGHT, OnChangeWordHeight)
ON_EN_CHANGE(ID_SETSCREENWIDTH, OnChangeScreenWidth)
ON_EN_CHANGE(ID_SETSCREENHEIGHT, OnChangeScreenHeight)
ON_COMMAND(ID_CANCELSELECTBTN, OnCancelselectbtn)
ON_COMMAND(ID_IMPORT, OnImport)
ON_WM_CHAR()
ON_WM_KEYDOWN()
ON_COMMAND(ID_DOWNLOAD, OnDownload)
ON_COMMAND(ID_DOWNONE, OnDownone)
ON_COMMAND(ID_SUPPER, OnSupper)
ON_MESSAGE(MYWM_PROGRESS , OnProgress)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
static UINT indicators[] =
{
ID_SEPARATOR, // status line indicator
ID_INDICATOR_CAPS,
ID_INDICATOR_NUM,
ID_INDICATOR_SCRL,
};
/////////////////////////////////////////////////////////////////////////////
// CMainFrame construction/destruction
CMainFrame::CMainFrame()
{
// TODO: add member initialization code here
bBold=TRUE;
bItalic=FALSE;
bLock=TRUE;
bShowRectangle=FALSE;
bInit=FALSE;
}
CMainFrame::~CMainFrame()
{
}
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
CSetDlg dgl;
if(dgl.DoModal()==IDOK)
{
comm=dgl.comm;
baurd=dgl.baurd ;
}
if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
return -1;
if (!m_standToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP
| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
!m_standToolBar.LoadToolBar(IDR_MAINFRAME))
{
TRACE0("Failed to create toolbar\n");
return -1; // fail to create
}
if (!m_wndToolBarDraw.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP
| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
!m_wndToolBarDraw.LoadToolBar(IDR_SETTOOLBAR))
{
TRACE0("Failed to create toolbar\n");
return -1; // fail to create
}
if (!m_txtToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP
| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
!m_txtToolBar.LoadToolBar(IDR_TEXTTOOLBAR))
{
TRACE0("Failed to create toolbar\n");
return -1; // fail to create
}
if (!m_wndStatusBar.Create(this) ||
!m_wndStatusBar.SetIndicators(indicators,
sizeof(indicators)/sizeof(UINT)))
{
TRACE0("Failed to create status bar\n");
return -1; // fail to create
}
SetWindowText("LED电子显示屏上位机更改软件");
AddStandToolBar();
CRect rect;
m_wndToolBarDraw.GetWindowRect(&rect);
//rect.OffsetRect(1, 0);
//this->RecalcLayout(); //关键的一步,重新排列
// DockControlBar(&m_wndToolBarDraw, AFX_IDW_DOCKBAR_TOP, &rect);
int k=m_wndToolBarDraw.GetCount();
for(int index=0;index<m_wndToolBarDraw.GetCount();index++)
{
if(m_wndToolBarDraw.GetItemID(index)==ID_SETFONTSTATIC)
{
//设置指定工具项的宽度并获取新的区域 80是宽度
m_wndToolBarDraw.SetButtonInfo(index, ID_SETFONTSTATIC, TBBS_SEPARATOR, 80);
m_wndToolBarDraw.GetItemRect(index, &rect);
//设置位置
rect.top+=2;
// rect.bottom += 500;
// rect.left=0;
rect.right=rect.left+40;
// 创建并显示
if (!m_wndToolBarDraw.m_fontStatic.Create("",WS_CHILD|WS_VISIBLE,
rect,&m_wndToolBarDraw,ID_SETFONTSTATIC))
{
//m_ObjectBar.GetWindow()
TRACE0("Failed to create combo-box\n");
return FALSE;
}
// if (!m_wndToolBarDraw.m_Combo.Create(
//填充内容
m_wndToolBarDraw.m_fontStatic.SetFont(&(m_wndToolBarDraw.m_font),0);
m_wndToolBarDraw.m_fontStatic.SetWindowText("字体:");
}
if(m_wndToolBarDraw.GetItemID(index)==ID_SETFONT)
{
//设置指定工具项的宽度并获取新的区域 80是宽度
m_wndToolBarDraw.SetButtonInfo(index, ID_SETFONT, TBBS_SEPARATOR, 40);
m_wndToolBarDraw.GetItemRect(index, &rect);
//设置位置
rect.left=36;
rect.top+=2;
rect.bottom += 200;
// rect.left=0;
//ect.right=rect.left+460;
// 创建并显示
if (!m_wndToolBarDraw.m_fontCombo.Create(WS_CHILD|WS_VISIBLE|WS_VSCROLL|CBS_DROPDOWNLIST|CBS_SIMPLE|CBS_SORT,
rect,&m_wndToolBarDraw,ID_SETFONT))
{
//m_ObjectBar.GetWindow()
TRACE0("Failed to create combo-box\n");
return FALSE;
}
m_wndToolBarDraw.m_fontCombo.SetWindowText("宋体");
//填充内容
//m_wndToolBarDraw.m_Static.SetFont(&(m_wndToolBarDraw.m_font),0);
//m_wndToolBarDraw.m_Static.SetWindowText("字体:");
}
if(m_wndToolBarDraw.GetItemID(index)==ID_SETCOLORSTATIC)
{
//设置指定工具项的宽度并获取新的区域 80是宽度
m_wndToolBarDraw.SetButtonInfo(index, ID_SETCOLORSTATIC, TBBS_SEPARATOR, 80);
m_wndToolBarDraw.GetItemRect(index, &rect);
//设置位置
rect.top+=2;
// rect.bottom += 500;
// rect.left=0;
rect.right=rect.left+40;
// 创建并显示
if (!m_wndToolBarDraw.m_colorStatic.Create("",WS_CHILD|WS_VISIBLE,
rect,&m_wndToolBarDraw,ID_SETCOLORSTATIC))
{
//m_ObjectBar.GetWindow()
TRACE0("Failed to create combo-box\n");
return FALSE;
}
// if (!m_wndToolBarDraw.m_Combo.Create(
//填充内容
m_wndToolBarDraw.m_colorStatic.SetFont(&(m_wndToolBarDraw.m_font),0);
m_wndToolBarDraw.m_colorStatic.SetWindowText("颜色:");
}
if(m_wndToolBarDraw.GetItemID(index)==ID_SETCOLOR)
{
//设置指定工具项的宽度并获取新的区域 80是宽度
m_wndToolBarDraw.SetButtonInfo(index, ID_SETCOLOR, TBBS_SEPARATOR, 20);
m_wndToolBarDraw.GetItemRect(index, &rect);
//设置位置
// rect.left=36;
rect.left-=44;
rect.top+=2;
rect.bottom += 200;
// rect.left=0;
//ect.right=rect.left+460;
// 创建并显示
if (!m_wndToolBarDraw.m_colorCombo.Create(WS_CHILD|WS_VISIBLE|WS_VSCROLL|CBS_DROPDOWNLIST|CBS_SIMPLE,
rect,&m_wndToolBarDraw,ID_SETCOLOR))
{
//m_ObjectBar.GetWindow()
TRACE0("Failed to create combo-box\n");
return FALSE;
}
//填充内容
m_wndToolBarDraw.m_colorCombo.AddString("A");
m_wndToolBarDraw.m_colorCombo.AddString("B");
m_wndToolBarDraw.m_colorCombo.AddString("C");
m_wndToolBarDraw.m_colorCombo.AddString("D");
//m_wndToolBarDraw.m_Static.SetFont(&(m_wndToolBarDraw.m_font),0);
//m_wndToolBarDraw.m_Static.SetWindowText("字体:");
}
if(m_wndToolBarDraw.GetItemID(index)==ID_WORDWIDTHSTATIC)
{
//设置指定工具项的宽度并获取新的区域 80是宽度
m_wndToolBarDraw.SetButtonInfo(index, ID_WORDWIDTHSTATIC, TBBS_SEPARATOR, 80);
m_wndToolBarDraw.GetItemRect(index, &rect);
//设置位置
rect.top+=2;
rect.right=rect.left+40;
// 创建并显示
if (!m_wndToolBarDraw.m_wordwidthStatic.Create("",WS_CHILD|WS_VISIBLE,
rect,&m_wndToolBarDraw,ID_WORDWIDTHSTATIC))
{
TRACE0("Failed to create combo-box\n");
return FALSE;
}
m_wndToolBarDraw.m_wordwidthStatic.SetFont(&(m_wndToolBarDraw.m_font),0);
m_wndToolBarDraw.m_wordwidthStatic.SetWindowText("字宽:");
}
if(m_wndToolBarDraw.GetItemID(index)==ID_SETWORDWIDTH)
{
//设置指定工具项的宽度并获取新的区域 80是宽度
m_wndToolBarDraw.SetButtonInfo(index, ID_SETWORDWIDTH, TBBS_SEPARATOR, 10);
m_wndToolBarDraw.GetItemRect(index, &rect);
//设置位置
rect.left-=44;
rect.top+=2;
rect.bottom += 200;
// 创建并显示
if (!m_wndToolBarDraw.m_wordWidth.Create(WS_CHILD|WS_VISIBLE|WS_BORDER,
rect,&m_wndToolBarDraw,ID_SETWORDWIDTH))
{
//m_ObjectBar.GetWindow()
TRACE0("Failed to create combo-box\n");
return FALSE;
}
m_wndToolBarDraw.m_wordWidth.SetWindowText("16");
}
if(m_wndToolBarDraw.GetItemID(index)==ID_WORDHEIGHTSTATIC)
{
//设置指定工具项的宽度并获取新的区域 80是宽度
m_wndToolBarDraw.SetButtonInfo(index, ID_WORDHEIGHTSTATIC, TBBS_SEPARATOR, 80);
m_wndToolBarDraw.GetItemRect(index, &rect);
//设置位置
rect.top+=2;
rect.right=rect.left+40;
// 创建并显示
if (!m_wndToolBarDraw.m_wordheightStatic.Create("",WS_CHILD|WS_VISIBLE,
rect,&m_wndToolBarDraw,ID_WORDHEIGHTSTATIC))
{
TRACE0("Failed to create combo-box\n");
return FALSE;
}
m_wndToolBarDraw.m_wordheightStatic.SetFont(&(m_wndToolBarDraw.m_font),0);
m_wndToolBarDraw.m_wordheightStatic.SetWindowText("字高:");
}
if(m_wndToolBarDraw.GetItemID(index)==ID_SETWORDHEIGHT)
{
//设置指定工具项的宽度并获取新的区域 80是宽度
m_wndToolBarDraw.SetButtonInfo(index, ID_SETWORDHEIGHT, TBBS_SEPARATOR, 10);
m_wndToolBarDraw.GetItemRect(index, &rect);
//设置位置
rect.left-=44;
rect.top+=2;
rect.bottom += 200;
// 创建并显示
if (!m_wndToolBarDraw.m_wordHeight.Create(WS_CHILD|WS_VISIBLE|WS_BORDER,
rect,&m_wndToolBarDraw,ID_SETWORDHEIGHT))
{
//m_ObjectBar.GetWindow()
TRACE0("Failed to create combo-box\n");
return FALSE;
}
m_wndToolBarDraw.m_wordHeight.SetWindowText("16");
}
if(m_wndToolBarDraw.GetItemID(index)==ID_SCREENWIDTHSTATIC)
{
//设置指定工具项的宽度并获取新的区域 80是宽度
m_wndToolBarDraw.SetButtonInfo(index, ID_SCREENWIDTHSTATIC, TBBS_SEPARATOR, 80);
m_wndToolBarDraw.GetItemRect(index, &rect);
//设置位置
rect.top+=2;
rect.right=rect.left+40;
// 创建并显示
if (!m_wndToolBarDraw.m_screenwidthStatic.Create("",WS_CHILD|WS_VISIBLE,
rect,&m_wndToolBarDraw,ID_SCREENWIDTHSTATIC))
{
TRACE0("Failed to create combo-box\n");
return FALSE;
}
m_wndToolBarDraw.m_screenwidthStatic.SetFont(&(m_wndToolBarDraw.m_font),0);
m_wndToolBarDraw.m_screenwidthStatic.SetWindowText("屏宽:");
}
if(m_wndToolBarDraw.GetItemID(index)==ID_SETSCREENWIDTH)
{
//设置指定工具项的宽度并获取新的区域 80是宽度
m_wndToolBarDraw.SetButtonInfo(index, ID_SETSCREENWIDTH, TBBS_SEPARATOR, 10);
m_wndToolBarDraw.GetItemRect(index, &rect);
//设置位置
rect.left-=44;
rect.top+=2;
rect.bottom += 200;
// 创建并显示
if (!m_wndToolBarDraw.m_screenWidth.Create(WS_CHILD|WS_VISIBLE|WS_BORDER,
rect,&m_wndToolBarDraw,ID_SETSCREENWIDTH))
{
//m_ObjectBar.GetWindow()
TRACE0("Failed to create combo-box\n");
return FALSE;
}
m_wndToolBarDraw.m_screenWidth.SetWindowText("128");
}
if(m_wndToolBarDraw.GetItemID(index)==ID_SCREENHEIGHTSTATIC)
{
//设置指定工具项的宽度并获取新的区域 80是宽度
m_wndToolBarDraw.SetButtonInfo(index, ID_SCREENHEIGHTSTATIC, TBBS_SEPARATOR, 80);
m_wndToolBarDraw.GetItemRect(index, &rect);
//设置位置
rect.top+=2;
rect.right=rect.left+40;
// 创建并显示
if (!m_wndToolBarDraw.m_screenheightStatic.Create("",WS_CHILD|WS_VISIBLE,
rect,&m_wndToolBarDraw,ID_SCREENHEIGHTSTATIC))
{
TRACE0("Failed to create combo-box\n");
return FALSE;
}
m_wndToolBarDraw.m_screenheightStatic.SetFont(&(m_wndToolBarDraw.m_font),0);
m_wndToolBarDraw.m_screenheightStatic.SetWindowText("屏高:");
}
if(m_wndToolBarDraw.GetItemID(index)==ID_SETSCREENHEIGHT)
{
//设置指定工具项的宽度并获取新的区域 80是宽度
m_wndToolBarDraw.SetButtonInfo(index, ID_SETSCREENHEIGHT, TBBS_SEPARATOR, 10);
m_wndToolBarDraw.GetItemRect(index, &rect);
//设置位置
rect.left-=44;
rect.top+=2;
rect.bottom += 200;
// 创建并显示
if (!m_wndToolBarDraw.m_screenHeight.Create(WS_CHILD|WS_VISIBLE|WS_BORDER,
rect,&m_wndToolBarDraw,ID_SETSCREENHEIGHT))
{
//m_ObjectBar.GetWindow()
TRACE0("Failed to create combo-box\n");
return FALSE;
}
m_wndToolBarDraw.m_screenHeight.SetWindowText("48");
}
}
AddTextToolBar();
// TODO: Delete these three lines if you don't want the toolbar to
// be dockable
m_standToolBar.EnableDocking(CBRS_ALIGN_ANY);
EnableDocking(CBRS_ALIGN_ANY);
DockControlBar(&m_standToolBar);
m_wndToolBarDraw.EnableDocking(CBRS_ALIGN_TOP);
DockControlBar(&m_wndToolBarDraw);
m_txtToolBar.EnableDocking(CBRS_ALIGN_TOP);
DockControlBar(&m_txtToolBar);
// this->FloatControlBar(&m_txtToolBar,CPoint(30,120));
return 0;
}
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
if( !CFrameWnd::PreCreateWindow(cs) )
return FALSE;
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs
cs.style&=~FWS_ADDTOTITLE;
//return CMDIFrameWnd::PreCreateWindow(cs);
return TRUE;
}
/////////////////////////////////////////////////////////////////////////////
// CMainFrame diagnostics
#ifdef _DEBUG
void CMainFrame::AssertValid() const
{
CFrameWnd::AssertValid();
}
void CMainFrame::Dump(CDumpContext& dc) const
{
CFrameWnd::Dump(dc);
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CMainFrame message handlers
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
// TODO: Add your specialized code here and/or call the base class
CRect rc;
GetClientRect(&rc);
if(m_wndSplit1.CreateStatic(this,2,1)==NULL)
return FALSE;
// m_wndSplit1.CreateView(0,0,RUNTIME_CLASS(CScreenView),CSize(rc.Width(),rc.Height()*4/5),pContext);
if(m_wndSplit2.CreateStatic(&m_wndSplit1,1,2,WS_CHILD|WS_VISIBLE,m_wndSplit1.IdFromRowCol(0,0))==FALSE)
return FALSE;
m_wndSplit2.CreateView(0,0,RUNTIME_CLASS(CScreenView),CSize(200,800),pContext);
m_wndSplit2.CreateView(0,1,RUNTIME_CLASS(CDrawVw),CSize(100,800),pContext);
m_wndSplit1.CreateView(1,0,RUNTIME_CLASS(CMyEditVw),CSize(100,0),pContext);
bInit=TRUE;
return TRUE;
//return CFrameWnd::OnCreateClient(lpcs, pContext);
}
void CMainFrame::OnSizing(UINT fwSide, LPRECT pRect)
{
CFrameWnd::OnSizing(fwSide, pRect);
// TODO: Add your message handler code here
}
void CMainFrame::OnSize(UINT nType, int cx, int cy)
{
CFrameWnd::OnSize(nType, cx, cy);
CRect rc;
if(bInit)
{
GetClientRect(&rc);
m_wndSplit1.SetRowInfo(0,rc.Height()*3/4,0);
// m_wndSplit1.SetRowInfo(0,rc.Height()/5,100);
//m_wndSplit1.SetColumnInfo(0,500,0);
m_wndSplit1.RecalcLayout();
}
// TODO: Add your message handler code here
}
void CMainFrame::RecalcLayout(BOOL bNotify)
{
// TODO: Add your specialized code here and/or call the base class
CFrameWnd::RecalcLayout(bNotify);
}
void CMainFrame::CalcWindowRect(LPRECT lpClientRect, UINT nAdjustType)
{
// TODO: Add your specialized code here and/or call the base class
CFrameWnd::CalcWindowRect(lpClientRect, nAdjustType);
}
BOOL CMainFrame::AddTextToolBar()
{
CRect rect;
m_txtToolBar.GetWindowRect(&rect);
//rect.OffsetRect(1, 0);
//this->RecalcLayout(); //关键的一步,重新排列
// DockControlBar(&m_wndToolBarDraw, AFX_IDW_DOCKBAR_TOP, &rect);
int k=m_txtToolBar.GetCount();
for(int index=0;index<m_txtToolBar.GetCount();index++)
{
if(m_txtToolBar.GetItemID(index)==ID_TEXTINPUT)
{
//设置指定工具项的宽度并获取新的区域 80是宽度
m_txtToolBar.SetButtonInfo(index, ID_TEXTINPUT, TBBS_SEPARATOR, 260);
m_txtToolBar.GetItemRect(index, &rect);
//设置位置
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -