很奇怪,我首先是在APP的InitInstance初始化打开了GDI+
GdiplusStartupInput gdiplusStartupInput;
LONG_PTR gdiplusToken;
GdiplusStartup((ULONG_PTR)&gdiplusToken, &gdiplusStartupInput, NULL);主窗口和子窗口一模一样的过程。。先是OnCreate中 m_hFuncInst = LoadLibrary(_T("User32.DLL"));
if(m_hFuncInst)
UpdateLayeredWindow=(MYFUNC)GetProcAddress(m_hFuncInst, "UpdateLayeredWindow"); m_Blend.BlendOp = 0;
m_Blend.BlendFlags = 0;
m_Blend.AlphaFormat = 1;
m_Blend.SourceConstantAlpha=255; m_pImagePaint = Image::FromFile(_T("res\test.png"));
FreeLibrary(m_hFuncInst);
然后就是调用自定义的UpdateGUDIPaint函数完成png窗口的初始化了如果我主窗口不调用我自定义的UpdateGUDIPaint函数 那什么事都没有 运行很流畅
一点点的内存泄漏都没有
一旦我主窗口调用了自定义的UpdateGUDIPaint函数,调用一次程序在系统中的虚拟内存就增加一次一次能增加10MB左右 太恐怖了吧。
难道GDI+只支持一个窗口进行操作???????我单独测试过自定的UpdateGUDIPaint函数 没有内存泄漏 虚拟内存也不会上涨 结束语句释放对象也都释放了
这怎么回事? 请教!!
GdiplusStartupInput gdiplusStartupInput;
LONG_PTR gdiplusToken;
GdiplusStartup((ULONG_PTR)&gdiplusToken, &gdiplusStartupInput, NULL);主窗口和子窗口一模一样的过程。。先是OnCreate中 m_hFuncInst = LoadLibrary(_T("User32.DLL"));
if(m_hFuncInst)
UpdateLayeredWindow=(MYFUNC)GetProcAddress(m_hFuncInst, "UpdateLayeredWindow"); m_Blend.BlendOp = 0;
m_Blend.BlendFlags = 0;
m_Blend.AlphaFormat = 1;
m_Blend.SourceConstantAlpha=255; m_pImagePaint = Image::FromFile(_T("res\test.png"));
FreeLibrary(m_hFuncInst);
然后就是调用自定义的UpdateGUDIPaint函数完成png窗口的初始化了如果我主窗口不调用我自定义的UpdateGUDIPaint函数 那什么事都没有 运行很流畅
一点点的内存泄漏都没有
一旦我主窗口调用了自定义的UpdateGUDIPaint函数,调用一次程序在系统中的虚拟内存就增加一次一次能增加10MB左右 太恐怖了吧。
难道GDI+只支持一个窗口进行操作???????我单独测试过自定的UpdateGUDIPaint函数 没有内存泄漏 虚拟内存也不会上涨 结束语句释放对象也都释放了
这怎么回事? 请教!!
解决方案 »
- 多文档程序中,一个文档多视图怎么实现?
- 求从网页下载并注册ActiveX控件的代码及详细部署流程(HTM,ASP都行)
- 如何在RichEdid的编辑区将某行某列用别的颜色来填充背景??
- 怎样在一个Listview中使用CTabCtrl类创建和使用Tab控件?
- 图形图像公司?
- Word直接保存成html 其中的图片。
- 大家好!我现在在一个培训部教VC++6.0,可我自已以前从没有接触过,现在上起课来好吃力,谁能给我一个好的方法?
- 有关cstring作为成员变量的访问问题。
- 关于在vc中使用ado的效率问题
- 为什么在用VC++调用动态库的函数并编译通过,但在运行该函数时WIN98系统显示非法操作?
- combo box与picture的问题请大家帮忙 谢谢了
- LOGPEN结构体为何这样设计呢?
DeleteObject(hBitMap);
DeleteDC(m_hdcMemory);
不过我已经解决了,原因还是不清楚,似乎和我主窗口的Image的指针有关系
不管了以后有空在研究 散分