📄 drawview.cpp
字号:
void CDrawView::OnUpdateToolPallk(CCmdUI* pCmdUI)
{
pCmdUI->SetCheck(m_transparence?1:0);
}
void CDrawView::OnUpdateToolBBig(CCmdUI* pCmdUI)
{
pCmdUI->SetCheck(m_tool_type==Tool_BIGSMALL?1:0);
}
void CDrawView::OnFileOpen()
{
WCHAR g_szFilename[255]={0};
wcscpy(g_szFilename,L"\\c\\a.bmp");
OPENFILENAME ofn;
memset( &ofn, 0, sizeof( ofn ) );
ofn.lStructSize = sizeof( ofn );
ofn.hwndOwner = this->m_hWnd;
ofn.lpstrFile = g_szFilename;
ofn.lpstrInitialDir = TEXT( "\\C" );
ofn.nMaxFile = MAX_PATH;
ofn.Flags = OFN_HIDEREADONLY;
// Build a list of acceptable files
ofn.lpstrFilter = TEXT( "*.bmp\0*.*\0\0");
ofn.lpstrTitle = TEXT( "打开文件" );
ofn.lpstrDefExt = TEXT( "bmp" );
if( !GetOpenFileName( &ofn ) )
{
return ;
}
CDC *pDC=GetWindowDC();
CDrawDoc* pDoc = GetDocument();
CClientDC dc(this);
HBITMAP hbitmap=(HBITMAP)SHLoadDIBitmap(g_szFilename);
BITMAP bitmap;
GetObject(hbitmap, sizeof(bitmap), &bitmap);
HDC TempMemDC;
TempMemDC=CreateCompatibleDC(pDC->m_hDC);
HBITMAP pOldBitmap = (HBITMAP)SelectObject(TempMemDC,hbitmap);
float per;
int m_Witdh,m_Height;
per=(float)((float)bitmap.bmWidth/(float)bitmap.bmHeight);
m_Height=iScreenHeight-25*3;
m_Witdh=(int)(per*(float)m_Height);
if(m_Witdh>iScreenWidth-28)
m_Witdh=iScreenWidth-28;
StretchBlt(hMemDC,0,0,m_Witdh,m_Height,TempMemDC
,0,0,bitmap.bmWidth,bitmap.bmHeight,SRCCOPY);
CDBackMap* BKMAP=(CDBackMap*)pDoc->m_BackMapArray.GetAt(0);
this->RedrawWindow();
DeleteObject(hbitmap);
DeleteObject(pOldBitmap);
}
void CDrawView::OnFileSave()
{
WCHAR g_szFilename[255]={0};
wcscpy(g_szFilename,L"\\c\\a.bmp");
OPENFILENAME ofn;
memset( &ofn, 0, sizeof( ofn ) );
ofn.lStructSize = sizeof( ofn );
ofn.hwndOwner = this->m_hWnd;
ofn.lpstrFile = g_szFilename;
ofn.lpstrInitialDir = TEXT( "\\C" );
ofn.nMaxFile = MAX_PATH;
ofn.Flags = OFN_HIDEREADONLY;
// Build a list of acceptable files
ofn.lpstrFilter = TEXT( "*.bmp\0*.*\0\0");
ofn.lpstrTitle = TEXT( "保存文件" );
ofn.lpstrDefExt = TEXT( "bmp" );
if( !GetSaveFileName( &ofn ) )
{
return ;
}
HBITMAP hbitmap,hOldBitmap;
CClientDC dc(this);
//MemMap=CopyScreenToBitmap(this->m_hWnd,CRect(25,28,iScreenWidth,iScreenHeight));
HDC hScrDC, hMDC;
hScrDC = ::GetDC(this->m_hWnd);
//为屏幕设备描述表创建兼容的内存设备描述表
hMDC = CreateCompatibleDC(hScrDC);
hbitmap=::CreateCompatibleBitmap(hMDC,iScreenWidth,iScreenHeight);
hOldBitmap = (HBITMAP)SelectObject(hMDC,hbitmap);
BitBlt(hMDC, 0, 0,iScreenWidth,iScreenHeight,hMemDC, 25, 28, SRCCOPY);
hbitmap=(HBITMAP)SelectObject(hMDC, hOldBitmap);
//SaveBitmapToFile(hbitmap,str); CopyScreenToBitmap(HWND hPic,HDC m_Hdc,LPRECT lpRect)
HBITMAP hBitmapScreen2Bmp;
hBitmapScreen2Bmp=CopyScreenToBitmap(this->m_hWnd,hMemDC,CRect(0,0,iScreenWidth,iScreenHeight));
g_lpDIB=GettingBits(hBitmapScreen2Bmp);
SaveDIBToFile(g_lpDIB,g_szFilename);
if (g_lpDIB != NULL){LocalFree((HLOCAL)g_lpDIB);g_lpDIB = NULL;}
DeleteObject(hbitmap);
DeleteObject(hOldBitmap);
RedrawWindow();
}
//===================================选取颜色==================================
//红
void CDrawView::OnToolRed()
{
m_colorNO=1;
if(m_toolcolorFB==Tool_S_PEN)
{
m_CurPen=RGB(255,0,0);
CMainFrame* pMainFrame=(CMainFrame*)AfxGetMainWnd();
pMainFrame->m_ToolBarCOL.SetButtonInfo(0,ID_TOOL_FC,TBBS_BUTTON,m_colorNO);
pMainFrame->m_ToolBarCOL.UpdateWindow();
}
else
{
m_CurBrush=RGB(255,0,0);
CMainFrame* pMainFrame=(CMainFrame*)AfxGetMainWnd();
pMainFrame->m_ToolBarCOL1.SetButtonInfo(0,ID_TOOL_BC,TBBS_BUTTON,8+m_colorNO);
pMainFrame->m_ToolBarCOL1.UpdateWindow();
}
}
//黄
void CDrawView::OnToolYellow()
{
m_colorNO=2;
if(m_toolcolorFB==Tool_S_PEN)
{
m_CurPen=RGB(255,255,0);
CMainFrame* pMainFrame=(CMainFrame*)AfxGetMainWnd();
pMainFrame->m_ToolBarCOL.SetButtonInfo(0,ID_TOOL_FC,TBBS_BUTTON,m_colorNO);
pMainFrame->m_ToolBarCOL.UpdateWindow();
}
else
{
m_CurBrush=RGB(255,255,0);
CMainFrame* pMainFrame=(CMainFrame*)AfxGetMainWnd();
pMainFrame->m_ToolBarCOL1.SetButtonInfo(0,ID_TOOL_BC,TBBS_BUTTON,8+m_colorNO);
pMainFrame->m_ToolBarCOL1.UpdateWindow();
}
}
//蓝
void CDrawView::OnToolBlue()
{
m_colorNO=3;
if(m_toolcolorFB==Tool_S_PEN)
{
m_CurPen=RGB(0,0,255);
CMainFrame* pMainFrame=(CMainFrame*)AfxGetMainWnd();
pMainFrame->m_ToolBarCOL.SetButtonInfo(0,ID_TOOL_FC,TBBS_BUTTON,m_colorNO);
pMainFrame->m_ToolBarCOL.UpdateWindow();
}
else
{
m_CurBrush=RGB(0,0,255);
CMainFrame* pMainFrame=(CMainFrame*)AfxGetMainWnd();
pMainFrame->m_ToolBarCOL1.SetButtonInfo(0,ID_TOOL_BC,TBBS_BUTTON,8+m_colorNO);
pMainFrame->m_ToolBarCOL1.UpdateWindow();
}
}
//绿
void CDrawView::OnToolGreen()
{
m_colorNO=4;
if(m_toolcolorFB==Tool_S_PEN)
{
m_CurPen=RGB(0,255,0);
CMainFrame* pMainFrame=(CMainFrame*)AfxGetMainWnd();
pMainFrame->m_ToolBarCOL.SetButtonInfo(0,ID_TOOL_FC,TBBS_BUTTON,m_colorNO);
pMainFrame->m_ToolBarCOL.UpdateWindow();
}
else
{
m_CurBrush=RGB(0,255,0);
CMainFrame* pMainFrame=(CMainFrame*)AfxGetMainWnd();
pMainFrame->m_ToolBarCOL1.SetButtonInfo(0,ID_TOOL_BC,TBBS_BUTTON,8+m_colorNO);
pMainFrame->m_ToolBarCOL1.UpdateWindow();
}
}
//黑
void CDrawView::OnToolBlack()
{
m_colorNO=5;
if(m_toolcolorFB==Tool_S_PEN)
{
m_CurPen=RGB(0,0,0);
CMainFrame* pMainFrame=(CMainFrame*)AfxGetMainWnd();
pMainFrame->m_ToolBarCOL.SetButtonInfo(0,ID_TOOL_FC,TBBS_BUTTON,m_colorNO);
pMainFrame->m_ToolBarCOL.UpdateWindow();
}
else
{
m_CurBrush=RGB(0,0,0);
CMainFrame* pMainFrame=(CMainFrame*)AfxGetMainWnd();
pMainFrame->m_ToolBarCOL1.SetButtonInfo(0,ID_TOOL_BC,TBBS_BUTTON,8+m_colorNO);
pMainFrame->m_ToolBarCOL1.UpdateWindow();
}
}
//白
void CDrawView::OnToolWhite()
{
m_colorNO=6;
if(m_toolcolorFB==Tool_S_PEN)
{
m_CurPen=RGB(255,255,255);
CMainFrame* pMainFrame=(CMainFrame*)AfxGetMainWnd();
pMainFrame->m_ToolBarCOL.SetButtonInfo(0,ID_TOOL_FC,TBBS_BUTTON,m_colorNO);
pMainFrame->m_ToolBarCOL.UpdateWindow();
}
else
{
m_CurBrush=RGB(255,255,255);
CMainFrame* pMainFrame=(CMainFrame*)AfxGetMainWnd();
pMainFrame->m_ToolBarCOL1.SetButtonInfo(0,ID_TOOL_BC,TBBS_BUTTON,8+m_colorNO);
pMainFrame->m_ToolBarCOL1.UpdateWindow();
}
}
//浅灰
void CDrawView::OnToolFgray()
{
m_colorNO=7;
if(m_toolcolorFB==Tool_S_PEN)
{
m_CurPen=RGB(192,192,192);
CMainFrame* pMainFrame=(CMainFrame*)AfxGetMainWnd();
pMainFrame->m_ToolBarCOL.SetButtonInfo(0,ID_TOOL_FC,TBBS_BUTTON,m_colorNO);
pMainFrame->m_ToolBarCOL.UpdateWindow();
}
else
{
m_CurBrush=RGB(192,192,192);
CMainFrame* pMainFrame=(CMainFrame*)AfxGetMainWnd();
pMainFrame->m_ToolBarCOL1.SetButtonInfo(0,ID_TOOL_BC,TBBS_BUTTON,8+m_colorNO);
pMainFrame->m_ToolBarCOL1.UpdateWindow();
}
}
//灰
void CDrawView::OnToolGray()
{
m_colorNO=8;
if(m_toolcolorFB==Tool_S_PEN)
{
m_CurPen=RGB(128,128,128);
CMainFrame* pMainFrame=(CMainFrame*)AfxGetMainWnd();
pMainFrame->m_ToolBarCOL.SetButtonInfo(0,ID_TOOL_FC,TBBS_BUTTON,m_colorNO);
pMainFrame->m_ToolBarCOL.UpdateWindow();
}
else
{
m_CurBrush=RGB(128,128,128);
CMainFrame* pMainFrame=(CMainFrame*)AfxGetMainWnd();
pMainFrame->m_ToolBarCOL1.SetButtonInfo(0,ID_TOOL_BC,TBBS_BUTTON,8+m_colorNO);
pMainFrame->m_ToolBarCOL1.UpdateWindow();
}
}
//深黄
void CDrawView::OnToolHyellow()
{
m_colorNO=9;
if(m_toolcolorFB==Tool_S_PEN)
{
m_CurPen=RGB(128,128,0);
CMainFrame* pMainFrame=(CMainFrame*)AfxGetMainWnd();
pMainFrame->m_ToolBarCOL.SetButtonInfo(0,ID_TOOL_FC,TBBS_BUTTON,m_colorNO);
pMainFrame->m_ToolBarCOL.UpdateWindow();
}
else
{
m_CurBrush=RGB(128,128,0);
CMainFrame* pMainFrame=(CMainFrame*)AfxGetMainWnd();
pMainFrame->m_ToolBarCOL1.SetButtonInfo(0,ID_TOOL_BC,TBBS_BUTTON,m_colorNO-8);
pMainFrame->m_ToolBarCOL1.UpdateWindow();
}
}
//深红
void CDrawView::OnToolHred()
{
m_colorNO=10;
if(m_toolcolorFB==Tool_S_PEN)
{
m_CurPen=RGB(128,0,0);
CMainFrame* pMainFrame=(CMainFrame*)AfxGetMainWnd();
pMainFrame->m_ToolBarCOL.SetButtonInfo(0,ID_TOOL_FC,TBBS_BUTTON,m_colorNO);
pMainFrame->m_ToolBarCOL.UpdateWindow();
}
else
{
m_CurBrush=RGB(128,0,0);
CMainFrame* pMainFrame=(CMainFrame*)AfxGetMainWnd();
pMainFrame->m_ToolBarCOL1.SetButtonInfo(0,ID_TOOL_BC,TBBS_BUTTON,m_colorNO-8);
pMainFrame->m_ToolBarCOL1.UpdateWindow();
}
}
//深绿
void CDrawView::OnToolHgreen()
{
m_colorNO=11;
if(m_toolcolorFB==Tool_S_PEN)
{
m_CurPen=RGB(0,128,0);
CMainFrame* pMainFrame=(CMainFrame*)AfxGetMainWnd();
pMainFrame->m_ToolBarCOL.SetButtonInfo(0,ID_TOOL_FC,TBBS_BUTTON,m_colorNO);
pMainFrame->m_ToolBarCOL.UpdateWindow();
}
else
{
m_CurBrush=RGB(0,128,0);
CMainFrame* pMainFrame=(CMainFrame*)AfxGetMainWnd();
pMainFrame->m_ToolBarCOL1.SetButtonInfo(0,ID_TOOL_BC,TBBS_BUTTON,m_colorNO-8);
pMainFrame->m_ToolBarCOL1.UpdateWindow();
}
}
//浅蓝
void CDrawView::OnToolFblue()
{
m_colorNO=12;
if(m_toolcolorFB==Tool_S_PEN)
{
m_CurPen=RGB(0,128,128);
CMainFrame* pMainFrame=(CMainFrame*)AfxGetMainWnd();
pMainFrame->m_ToolBarCOL.SetButtonInfo(0,ID_TOOL_FC,TBBS_BUTTON,m_colorNO);
pMainFrame->m_ToolBarCOL.UpdateWindow();
}
else
{
m_CurBrush=RGB(0,128,128);
CMainFrame* pMainFrame=(CMainFrame*)AfxGetMainWnd();
pMainFrame->m_ToolBarCOL1.SetButtonInfo(0,ID_TOOL_BC,TBBS_BUTTON,m_colorNO-8);
pMainFrame->m_ToolBarCOL1.UpdateWindow();
}
}
//白蓝
void CDrawView::OnToolWhiteblue()
{
m_colorNO=13;
if(m_toolcolorFB==Tool_S_PEN)
{
m_CurPen=RGB(0,255,255);
CMainFrame* pMainFrame=(CMainFrame*)AfxGetMainWnd();
pMainFrame->m_ToolBarCOL.SetButtonInfo(0,ID_TOOL_FC,TBBS_BUTTON,m_colorNO);
pMainFrame->m_ToolBarCOL.UpdateWindow();
}
else
{
m_CurBrush=RGB(0,255,255);
CMainFrame* pMainFrame=(CMainFrame*)AfxGetMainWnd();
pMainFrame->m_ToolBarCOL1.SetButtonInfo(0,ID_TOOL_BC,TBBS_BUTTON,m_colorNO-8);
pMainFrame->m_ToolBarCOL1.UpdateWindow();
}
}
//深蓝
void CDrawView::OnToolHblue()
{
m_colorNO=14;
if(m_toolcolorFB==Tool_S_PEN)
{
m_CurPen=RGB(0,0,128);
CMainFrame* pMainFrame=(CMainFrame*)AfxGetMainWnd();
pMainFrame->m_ToolBarCOL.SetButtonInfo(0,ID_TOOL_FC,TBBS_BUTTON,m_colorNO);
pMainFrame->m_ToolBarCOL.UpdateWindow();
}
else
{
m_CurBrush=RGB(0,255,255);
CMainFrame* pMainFrame=(CMainFrame*)AfxGetMainWnd();
pMainFrame->m_ToolBarCOL1.SetButtonInfo(0,ID_TOOL_BC,TBBS_BUTTON,m_colorNO-8);
pMainFrame->m_ToolBarCOL1.UpdateWindow();
}
}
//紫色
void CDrawView::OnToolAmet()
{
m_colorNO=15;
if(m_toolcolorFB==Tool_S_PEN)
{
m_CurPen=RGB(128,0,128);
CMainFrame* pMainFrame=(CMainFrame*)AfxGetMainWnd();
pMainFrame->m_ToolBarCOL.SetButtonInfo(0,ID_TOOL_FC,TBBS_BUTTON,m_colorNO);
pMainFrame->m_ToolBarCOL.UpdateWindow();
}
else
{
m_CurBrush=RGB(128,0,128);
CMainFrame* pMainFrame=(CMainFrame*)AfxGetMainWnd();
pMainFrame->m_ToolBarCOL1.SetButtonInfo(0,ID_TOOL_BC,TBBS_BUTTON,m_colorNO-8);
pMainFrame->m_ToolBarCOL1.UpdateWindow();
}
}
//浅红
void CDrawView::OnToolFred()
{
m_colorNO=16;
if(m_toolcolorFB==Tool_S_PEN)
{
m_CurPen=RGB(255,0,255);
CMainFrame* pMainFrame=(CMainFrame*)AfxGetMainWnd();
pMainFrame->m_ToolBarCOL.SetButtonInfo(0,ID_TOOL_FC,TBBS_BUTTON,m_colorNO);
pMainFrame->m_ToolBarCOL.UpdateWindow();
}
else
{
m_CurBrush=RGB(255,0,255);
CMainFrame* pMainFrame=(CMainFrame*)AfxGetMainWnd();
pMainFrame->m_ToolBarCOL1.SetButtonInfo(0,ID_TOOL_BC,TBBS_BUTTON,m_colorNO-8);
pMainFrame->m_ToolBarCOL1.UpdateWindow();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -