(转载)基于MFC的OpenGL绘图
摘要:一、简介 GDI是通过设备句柄(Device Context以下简称"DC")来绘图,而OpenGL则需要绘制环境(Rendering Context,以下简称"RC")。每一个GDI命令需要传给它一个DC,但与GDI不同,OpenGL使用当前绘制环境(RC)。一旦在一个线程中指定了一个当前RC,在此线程中其后所有的OpenGL命令都使用相同的当前RC。虽然在单一窗口中可以使用多个RC,但在单一线程中只有一个当前RC。下面我将首先产生一个OpenGL RC并使之成为当前RC,这将分为三个步骤:设置窗口像素格式;产生RC;设置为当前RC。二、MFC中的Op
阅读全文
(转载)谈屏幕截图--关于图像的保存
摘要:你想截取哪个窗口的图像,就找到那个窗口的DC (设备上下文),然后创建与之兼容的DC,和与之大小的兼容位图,将DC复制到兼容的DC中,保存起来。陷在我想保存客户区内的图像,那我就找到客户区的DC,然后将之整个的保存起来。详细代码如下://////////////////////////////////////////////////////////////////////////////////////////拷贝客户区的DC内容到兼容DC//////////////////////////////////////////////////////////////////////////////
阅读全文
(转载)MFC编程]再讲屏幕截图
摘要:要保证截图的时候所有窗口都是无效的,这样在鼠标滑动的时候才不容易丢失焦点。可是这样办得到吗?至少我现在认为是不可能的,也许真的有某种方式可以做到。既然这样想行不通,那就换一个思路吧。我们可以采用欺骗的手段,先新建一个对话框,然后让它充满整个屏幕并且始终保持在所有窗口的最前面,然后将整个屏幕截取出来使之画满整个对话框窗口,然后记录鼠标在此图像内的截图区域,再传递给主窗口就可以了。这是我在网上找到的一个比较容易懂的方法。 具体实现如下:(1)新建一个对话框,设置属性为无标题,无边框,新建类CCutScreenAreaDlg,在初始化函数中将其设置为所有窗口最前。int cxScreen,cyScr
阅读全文
(转载)MFC中获取窗口句柄及相关函数
摘要:一般我们使用的框架是VC提供的Wizard生成的MFC App Wizard(exe)框架,无论是多文档还是单文档,都存在指针和句柄获取和操作问题。本文中将针对各类句柄的获得、指针的获得以及MFC中常见应用进行阐述并举例。本文内容索引:=========================================================MFC中获取常见类句柄<视图类,文档类,框架类,应用程序类>MFC中获取窗口句柄及相关函数MFC获取控件句柄MFC各类中获取类指针详解MSDN关于应用程序信息和管理的各个函数================================
阅读全文
(转载)获得父窗口指针:获得MFC窗口其它类指针的方法
摘要:获得CWinApp: -在CMainFrame,CChildFrame,CDocument,CView中直接调用AfxGetApp()或用theApp -在其它类中只能用AfxGetApp() 获得CMainFrame: -在CMinApp中用AfxGetMainWnd()或者m_pMainWnd -在CChildFrame中可用GetParentFrame() -在其它类中用AfxGetMainWnd() 获得CChildFrame: -在CView中用GetParentFrame() -在CMainFrame中用MDIGetActive()或GetActiveFrame() -在其它类中用
阅读全文
[转载] MFC截屏亲测
摘要:CDC *pDC=GetDesktopWindow()->GetDC();//屏幕DC int BitPerPixel = pDC->GetDeviceCaps(BITSPIXEL);//获得颜色模式 int Width = pDC->GetDeviceCaps(HORZRES); int Height = pDC->GetDeviceCaps(VERTRES); CDC memDC;//内存DC memDC.CreateCompatibleDC(pDC); CBitmap memBitmap, *oldmemBitmap;//建立和屏幕兼容的bitmap memBit
阅读全文