- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个可视化 C++ 应用程序,它使用 CView 派生类来呈现其显示,主要是 3d vector 数据和真实类型文本。使用的映射模式是 MM_ANISOTROPIC 或 MM_LOMETRIC。我不能使用 MM_TEXT,因为我使用相同的代码来打印和绘制数据,而且还必须克服非方形屏幕像素问题。
绘图代码当前使用 CViews OnDraw 方法和提供的 CDC 对象直接绘制到屏幕上。我正在尝试使用 CreateCompatibleDC/CreateCompatibleBitmap 组合将其替换为绘制位图并将位图 blitting 到屏幕,如 MS documentation 中所述和其他地方。
问题是 DC 与 MM_TEXT 以外的映射模式不兼容,因此我的 View 呈现颠倒且比例错误。调查显示如下;
void CMyView::OnDraw(CDC *pDC)
{
CDC MyDC = CreateCompatibleDC(pDC); // Create a new memory DC;
int a = pDC->GetMapMode(),b = MyDC.GetMapMode();
'
'
'
}
a = 2
b = 1
在 MyDC 上调用 SetMapMode 会导致显示完全以黑色绘制。我是否必须重写我的代码以适合 MM_TEXT 以绘制位图,或者是否有其他方法可以解决此问题。
最佳答案
您可能还需要调用 SetWindowExt和 SetViewportExt .我之前确实将 MM_ISOTROPIC 与位图 DC 一起使用,并且它工作正常(没有手头的代码,因为它是移植到 GDI+ 后的代码)
关于c++ - 将 CreateCompatibleDC 与 MM_TEXT 以外的映射模式一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1253856/
函数功能:该函数创建一个与指定设备兼容的内存设备上下文环境(DC)。 函数原型:HDC CreateCompatibleDC(HDC hdc); 参数: hdc:现有设备上下文环境的句柄,如果
在下面的代码中,无论何时调用 CreateCompatibleDC,生成的设备上下文只有两种颜色:黑色和白色。 case WM_PAINT: { PAINTST
此示例代码手动读取一个位图文件,使用 CreateDIBSection() 让 GDI 为其分配内存,并创建一个 hbitmap 句柄。然后它使用 MemoryDC 将位图绘制到窗口 DC: ftp:
在下面的代码中,无论何时调用 CreateCompatibleDC,生成的设备上下文只有两种颜色:黑色和白色。 case WM_PAINT: { PAINTST
也许这是个愚蠢的问题,我不明白为什么我无法在以下代码中创建 DC: HBITMAP COcrDlg::LoadClippedBitmap(LPCTSTR pathName,UINT maxWidth,
我正在使用 win32 制作 2D 动画。到目前为止,我的程序加载了一组从资源创建的 HBITMAP 对象。当在下面的代码中从“OnUpdate()”调用 CreateCompatibleDC() 时
我已经链接到 gdi32.lib。无奈之下,我还链接了两个不同版本的 gdi32.lib 以及 gdiplus.lib,并包含了我能找到的所有 gdi 头文件,但无济于事。然而,这个问题在额外链接之前
我有一个可视化 C++ 应用程序,它使用 CView 派生类来呈现其显示,主要是 3d vector 数据和真实类型文本。使用的映射模式是 MM_ANISOTROPIC 或 MM_LOMETRIC。我
我有一个类的以下代码。这是一个类的初始化。 第三方动态链接库 [DllImport("gdi32.dll")] public static extern IntPtr CreateCompatib
当您调用 CreateCompatibleDC(NULL) 时,您将获得应用程序当前屏幕的句柄,如 MSDN 中所述: If this handle is NULL, the function cre
我是一名优秀的程序员,十分优秀!