对话框背景真正起作用的做法。(有内存泄露,不过可以通过各个控件的CtrlColor方法实现)
来源:互联网 发布:eclipse图形界面编程 编辑:程序博客网 时间:2024/05/14 13:53
HBRUSH CTestBKGroundDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
if (nCtlColor == CTLCOLOR_DLG)
{
HBITMAP hbm = (HBITMAP)LoadImage(AfxGetApp()->m_hInstance, _T("MyBitMap.bmp"),
IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
hbr = CreatePatternBrush(hbm);
DeleteObject(hbm);
return hbr;
}
else
{
CRect rect;
pWnd->GetClientRect(&rect);
pWnd->ClientToScreen(&rect);
ScreenToClient(&rect);
HBRUSH hbr = NULL;
HBITMAP hbm = (HBITMAP)LoadImage(AfxGetApp()->m_hInstance, _T("MyBitMap.bmp"),
IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
CDC dc;
dc.CreateCompatibleDC(pDC);
dc.SelectObject(hbm);
CDC dc2;
dc2.CreateCompatibleDC(&dc);
CBitmap bitmap;
bitmap.CreateCompatibleBitmap(&dc, rect.Width() + 20,rect.Height() +20);
dc2.SelectObject(bitmap);
dc2.BitBlt(0,0,rect.Width() + 20,rect.Height() +20,&dc, rect.left,rect.top,SRCCOPY);
hbr = CreatePatternBrush((HBITMAP)(bitmap.m_hObject));
pDC->SetBkMode(TRANSPARENT);
DeleteObject(hbm);
bitmap.DeleteObject();
dc2.DeleteDC();
dc.DeleteDC();;
return hbr;
}
}
- 对话框背景真正起作用的做法。(有内存泄露,不过可以通过各个控件的CtrlColor方法实现)
- VS2008下X264(svn 2009.0216)编译不过的解决办法(附编译通过+修改内存泄露版本)
- 对话框形式的ActiveX控件的做法(from codeguru)
- 对话框控件背景的修改
- 修改对话框picture控件背景颜色的方法
- VS2008下最新X264(svn 2009.0216)编译不过的解决办法(附编译通过+修改内存泄露版本)
- VS2008下最新X264(svn 2009.0216)编译不过的解决办法(附编译通过+修改内存泄露版本)
- 实现对话框在位图作为背景时的控件透明
- 实现对话框在位图作为背景时的控件透明
- VS2012查看是否有内存泄露的方法
- VS 查看是否有内存泄露的方法 定位位置
- 存档时出现对话框的做法实现
- 可以在工作环境一直运行的内存泄漏检测工具, 有GUI的泄露分析工具, 分析泄露更加容易
- MFC绘制有背景图像的对话框
- 内存泄露可以引发的问题
- 写了一个可以记录路线的计步器,好像有内存泄露问题,求指点
- 查找内存泄露的方法
- 检测内存泄露的方法:
- W: GPG error: http://dl.google.com/linux/chrome/deb stable Release: The following signatures couldn'
- PHP+mysql 入门级通讯录(一)
- 微软图形MSDN
- 关于WSE_CLIPSIBLINGS
- linux下putty的配色方案
- 对话框背景真正起作用的做法。(有内存泄露,不过可以通过各个控件的CtrlColor方法实现)
- c#中在一个窗体中触发另一个窗体的事件
- ES6学习笔记:数组
- 最新机器视觉研究团队汇总
- 容斥原理、鸽巢原理快速入门
- Windows API 绘图函数
- HDU6071 Lazy Running【最短路】
- poj 2406 Power Strings(kmp)
- windows api Path Functions