vc中显示位图、图标的方法

void CWyView::OnDraw(CDC* pDC) { CWyDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); // TODO: add draw code for native data here CClientDC dc(this); dc.SetBkColor(RGB(255, 0, 0)); dc.SetTextColor(RGB(0, 0, 255)); dc.TextOut(100, 100, _T("wangyang")); CPen pen; pen.CreatePen(PS_SOLID, 10, RGB(255, 0, 0)); CPen *oldPen = dc.SelectObject(&pen); dc.MoveTo(50, 50); dc.LineTo(100, 100); dc.SelectObject(oldPen); /*绘制设备相关性位图*/ CDC memoryDC; CBitmap bitmap; bitmap.LoadBitmap(IDB_BITMAP1); memoryDC.CreateCompatibleDC(&dc);//创建兼容性位图(该函数创建一个与指定设备兼容的内存设备上下文环境(DC)。) CBitmap *oldBitmap = memoryDC.SelectObject(&bitmap); memoryDC.TextOut(0, 0, _T("wang"));//在创建的内存设备上下文上进行绘图操作 memoryDC.MoveTo(0, 0); memoryDC.LineTo(100, 100); dc.BitBlt(0, 0, 100, 100, &memoryDC, 0, 0, SRCCOPY); dc.BitBlt(120,120,140,140,&memoryDC,0,0,SRCAND); memoryDC.SelectObject(oldBitmap); /* (图标并不是一个GDI对象,所以不需要选入DC)在MFC中没有一个专门的图标类,因为图标的操作比较简单, 使用HICON CWinApp::LoadIcon( UINT nIDResource )或是HICON CWinApp::LoadStandardIcon( LPCTSTR lpszIconName ) 装入后就 可以利用BOOL CDC::DrawIcon( int x, int y, HICON hIcon )绘制。由于在图标中可以指定透明区域, 所以在某些需要使用非规则图形而且面积不大的时候使用图标会比较简单。 */ /*Icon(图标)的操作*/ HICON icon1 = AfxGetApp()->LoadIcon(IDR_MAINFRAME); HICON icon2 = AfxGetApp()->LoadIcon(IDR_WYTYPE); pDC->DrawIcon(CPoint(200, 200), icon1); pDC->DrawIcon(CPoint(250, 250), icon2); ::DestroyIcon(icon1); ::DestroyIcon(icon2); /* 接下来看看如何在程序中得到各种对象的指针: " 全局函数AfxGetApp可以得到CWinApp应用类指针 " AfxGetApp()->m_pMainWnd为框架窗口指针 " 在框架窗口中:CFrameWnd::GetActiveDocument得到当前活动文档指针 " 在框架窗口中:CFrameWnd::GetActiveView得到当前活动视指针 " 在视中:CView::GetDocument得到对应的文档指针 " 在文档中:CDocument::GetFirstViewPosition,CDocument::GetNextView用来遍历所有和文档关联的视。 " 在文档中:CDocument::GetDocTemplate得到文档模板指针 " 在多文档界面中:CMDIFrameWnd::MDIGetActive得到当前活动的MDI子窗口 一般来讲用户输入消息(如菜单选择,鼠标,键盘等)会先发往视,如果视图未处理则会发往框架窗口。所以定义消息映射时定义在视图中就可以了,如果一个应用同时拥有多个视图而当前活动视图没有对消息进行处理则消息会发往框架窗口。 */ } 

你可能感兴趣的:(框架,活动,文档,mfc,图形)