可切换背景窗口实现透明问题。。。。请大大帮忙
时间:2011-11-29
来源:互联网
我这样实现了背景切换,然后又实现了窗口透明,可是只有第一个背景时候窗口是透明的,换了图片后就报错,点忽略图片换了可是不透明了。。。这是为什么呢?大大们帮帮忙 呃。
C/C++ code
实现透明:
C/C++ code
C/C++ code
BOOL CCalendarDlg::OnInitDialog() CBitmap bmp; bmp.LoadBitmap(m_nBkResID); m_brBk.CreatePatternBrush(&bmp); bmp.DeleteObject(); void CCalendarDlg::OnBnClickedChangebk() { // TODO: 在此添加控件通知处理程序代码 if ( m_nBkResID == IDB_BK1) { m_nBkResID = IDB_BK2; } else if(m_nBkResID == IDB_BK2) { m_nBkResID = IDB_BK3; } else { m_nBkResID = IDB_BK1; } OnInitDialog(); Invalidate(TRUE); }
实现透明:
C/C++ code
BOOL CCalendarDlg::OnInitDialog() SetWindowLong(this->GetSafeHwnd(),GWL_EXSTYLE, GetWindowLong(this->GetSafeHwnd(),GWL_EXSTYLE)^0x80000); HINSTANCE hInst = LoadLibrary("User32.DLL"); if(hInst) { typedef BOOL (WINAPI *MYFUNC)(HWND,COLORREF,BYTE,DWORD); MYFUNC fun = NULL; //取得SetLayeredWindowAttributes函数指针 fun=(MYFUNC)GetProcAddress(hInst, "SetLayeredWindowAttributes"); if(fun) fun(this->GetSafeHwnd(),0,200,2); FreeLibrary(hInst); } void CCalendarDlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) { BYTE m=(BYTE)m_sld.GetPos(); HINSTANCE hInst = LoadLibrary("User32.DLL"); if(hInst) { typedef BOOL (WINAPI *MYFUNC)(HWND,COLORREF,BYTE,DWORD); MYFUNC fun = NULL; fun=(MYFUNC)GetProcAddress(hInst, "SetLayeredWindowAttributes"); //取得SetLayeredWindowAttributes函数指针 if(fun) fun(AfxGetMainWnd()->GetSafeHwnd(),0,m*2,2); FreeLibrary(hInst); }; CString str; str.Format("窗体的透明度:%%%d",100 * m / 500); SetDlgItemText(IDC_TOUMING,str);
作者: wangyujonny 发布时间: 2011-11-29
换了图片后就报错,报什么错呢??内存错误???
作者: Q342210738 发布时间: 2011-11-29
引用 1 楼 q342210738 的回复:
换了图片后就报错,报什么错呢??内存错误???
换了图片后就报错,报什么错呢??内存错误???
Debug Assertion Failed!
在wingdi.cpp里
C/C++ code
ASSERT(m_hObject == NULL); // only attach once, detach on destroy if (hObject == NULL) { return FALSE; }
这里中断了
作者: wangyujonny 发布时间: 2011-11-29
忽略以后可以切换图片,第一次切换背景没有透明了,第二次又有了。。。。无奈。。。一共三个背景图片
作者: wangyujonny 发布时间: 2011-11-29
当我看到在你的切换图片的函数中,调用了OnInitDialog的时候,就知道 有些错误是必然的~
作者: wangweixu520 发布时间: 2011-11-29
引用 4 楼 wangweixu520 的回复:
当我看到在你的切换图片的函数中,调用了OnInitDialog的时候,就知道 有些错误是必然的~
当我看到在你的切换图片的函数中,调用了OnInitDialog的时候,就知道 有些错误是必然的~
呃呃,请问应该怎么做呢???这里不是调用是在这个对象下写的。。。
作者: wangyujonny 发布时间: 2011-11-29
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28