MFC制作不规则窗体
2011-08-18 19:58
225 查看
为什么用别人的方法不行啊!!!
不管了,反正我也能实现。思路还是不是很清晰。
1.制作png图片。注意边界,多试几次会明白我的意思的
2.m_image为CImage类,在OnInitDialog()里加上:
DrawUI()实现如下:
不管了,反正我也能实现。思路还是不是很清晰。
1.制作png图片。注意边界,多试几次会明白我的意思的
2.m_image为CImage类,在OnInitDialog()里加上:
ModifyStyleEx(0,WS_EX_LAYERED); m_image.Load(_T("res\\test1.png")); DrawUI();
DrawUI()实现如下:
void CdirectUITest2Dlg::DrawUI() { HDC hDC=::GetDC(m_hWnd); HDC hMemDC=::CreateCompatibleDC(hDC); BITMAPINFO bitmapinfo; bitmapinfo.bmiHeader.biSize = sizeof(BITMAPINFOHEADER); bitmapinfo.bmiHeader.biBitCount = 32; bitmapinfo.bmiHeader.biHeight =500; bitmapinfo.bmiHeader.biWidth = 500; bitmapinfo.bmiHeader.biPlanes = 1; bitmapinfo.bmiHeader.biCompression=BI_RGB; bitmapinfo.bmiHeader.biXPelsPerMeter=0; bitmapinfo.bmiHeader.biYPelsPerMeter=0; bitmapinfo.bmiHeader.biClrUsed=0; bitmapinfo.bmiHeader.biClrImportant=0; bitmapinfo.bmiHeader.biSizeImage = bitmapinfo.bmiHeader.biWidth * bitmapinfo.bmiHeader.biHeight * bitmapinfo.bmiHeader.biBitCount / 8; HBITMAP hBitmap=::CreateDIBSection (hMemDC,&bitmapinfo, 0,NULL, 0, 0); HBITMAP hOldBitmap = (HBITMAP)::SelectObject (hMemDC,hBitmap); //画出各个界面元素---------------------- m_image.Draw( hMemDC,0,0 ); //设置透明窗口------------------------------------------------- CPoint DestPt(0,0); CSize psize(500,500); BLENDFUNCTION blendFunc32bpp; blendFunc32bpp.AlphaFormat = AC_SRC_ALPHA; blendFunc32bpp.BlendFlags = 0; blendFunc32bpp.BlendOp = AC_SRC_OVER; blendFunc32bpp.SourceConstantAlpha = 255; ::UpdateLayeredWindow(m_hWnd,hDC,NULL,&psize,hMemDC,&DestPt,0,&blendFunc32bpp,ULW_ALPHA); //释放资源------------------------------------------------- ::SelectObject (hMemDC,hOldBitmap); ::DeleteObject(hBitmap); ::DeleteDC(hMemDC); ::ReleaseDC(m_hWnd,hDC); }3.加上鼠标拖动
void CdirectUITest2Dlg::OnLButtonDown(UINT nFlags, CPoint point) { // TODO: 在此添加消息处理程序代码和/或调用默认值 ReleaseCapture (); SendMessage (WM_NCLBUTTONDOWN, HTCAPTION, 0); CDialogEx::OnLButtonDown(nFlags, point); }
相关文章推荐
- [转]MFC制作不规则窗体
- MFC制作不规则窗体
- C# winform中不规则窗体制作的解决方案(已经解决24位色以上不能正常显示问题)
- 自己制作不规则窗体
- 详解使用C#制作不规则窗体的方法
- C# winform中不规则窗体制作的解决方案(已经解决24位色以上不能正常显示问题)
- 用C# Builder制作不规则窗体
- 用C#.net轻松制作不规则窗体(附源码)
- 用C#.net轻松制作不规则窗体
- (转)C# winform中不规则窗体制作的解决方案(已经解决24位色以上不能正常显示问题)
- 制作不规则窗体
- C# 制作不规则窗体的几种解决方案
- C# winform中不规则窗体制作的解决方案(已经解决24位色以上不能正常显示问题)
- [转]用C# Builder制作不规则窗体
- 转:用C#.net轻松制作不规则窗体
- C# winform中不规则窗体制作的解决方案(已经解决24位色以上不能正常显示问题)
- 实例学C#.net下轻松制作不规则窗体
- C# winform中不规则窗体制作的解决方案,方案二[转]
- C#不规则窗体制作(已经解决24位色以上不能正常显示问题)
- 用Borland C# Builder制作不规则窗体