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

📄 drawview.cpp

📁 Wince 下的画图软件的源代码,是一款不错的EVC图形编辑软件,可以直接作为PMP的配套软件.
💻 CPP
📖 第 1 页 / 共 3 页
字号:
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 + -