C++ MFC:SetMapMode(毫米)

C++ MFC:SetMapMode(毫米),c++,memory-leaks,mfc,C++,Memory Leaks,Mfc,我有一个关于MM_的问题 以下代码将缩放图形以匹配窗口大小 void CMapModeTestView::OnDraw(CDC* pDC) { CMapModeTestDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); CRect rect; GetClientRect(&rect); pDC->SetMapMode (MM_ANISOTROPIC); pDC->SetWindow

我有一个关于MM_的问题

以下代码将缩放图形以匹配窗口大小

void CMapModeTestView::OnDraw(CDC* pDC) 
{
    CMapModeTestDoc* pDoc = GetDocument();
    ASSERT_VALID(pDoc);

    CRect rect;
    GetClientRect(&rect);

    pDC->SetMapMode (MM_ANISOTROPIC);
    pDC->SetWindowExt(1024, 768); 
    pDC->SetViewportExt(rect.Width(), rect.Height());

    /* This line of code draws a rectangle but will not increase memory */
    pDC->Rectangle(0, 0, 1024, 768);


    /* This line of code draws text but increases memory */
    pDC->DrawText(_("Test"), CRect(50, 50, 100, 100), DT_CENTER);
}
若我运行这个程序并检查Windows任务管理器(Windows7),我会看到随着我用鼠标调整程序窗口的大小,内存不断增加

我搜索了与
MM_各向异性
模式相关的任何信息,但在设置为
MM_各向异性
模式的设备上下文中使用create font时,只能找到与内存泄漏相关的信息


注:程序运行在VS C++ 6

上,这里没有显示任何使用内存的代码,因此无法推测内存泄漏。当你切换到不同的模式时,泄漏会消失吗?是的,这很奇怪。如果使用其他模式,内存不会增加。换句话说,除了MM_各向异性模式外,任何模式都可以,也可以是MM_各向同性模式。因为当我在两台不同的计算机上运行程序时(使用MM_各向同性模式)。一个有内存泄漏,另一个没有。你能发布处理窗口调整消息的代码吗?如果它与您已经发布的内容相同,则发布整个函数,以便我们可以看到对
pDC
所做的操作。使用鼠标调整大小时,它只会泄漏内存。若您双击窗口栏使其最大化,内存不会泄漏。