MFC中静态文本框贴图处理
来源:互联网 发布:php 项目怎么维护的 编辑:程序博客网 时间:2024/06/06 03:12
1.静态文本控件贴png图片
在创建控件时添加SS_BITMAP属性SS_NOTIFY
CImage m_Icon.Load(wstring(L"tupian.png").c_str());
RECT rect;
HDC pDC = ::GetWindowDC(pImageStatic->m_hWnd);
::GetWindowRect(pImageStatic->m_hWnd,&rect);
m_Icon.TransparentBlt(pDC,rect,RGB(255,255,255));
pImageStatic->SetBitmap(m_Icon);
pImageStatic->ShowWindow(SW_SHOW);
::ReleaseDC(pImageStatic->m_hWnd,pDC);
2.静态文本控件贴bmp图片
在创建控件时添加SS_BITMAP与SS_NOTIFY属性
HBITMAP m_Icon = (HBITMAP)::LoadImage( NULL,L"tupian.bmp").c_str(), IMAGE_BITMAP, 21,21, LR_LOADFROMFILE);
m_pImageStatic->SetBitmap(m_Icon);
m_pImageStatic->ShowWindow(SW_SHOW);
3.静态文本控件贴ico图片
在创建控件时添加SS_ICON与SS_CENTERIMAGE属性
HICON m_Icon = (HICON)::LoadImage( NULL,(L"tupian.ico").c_str(), IMAGE_ICON, 16,16, LR_LOADFROMFILE);
m_pImageStatic->SetIcon(m_Icon);
4.设置对话框中控件颜色和背景
HBRUSH CDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
switch(pWnd->GetDlgCtrlID())
{
case ID_STATUS_COLOR:
{
pDC->SetBkMode(TRANSPARENT); //设置透明
pDC->SetTextColor(RGB(150,150,150)); //设置字体
pDC->SetBkColor(RGB(255,255, 255)); //设置背景色
break;
}
default:
break;
}
return (HBRUSH)GetStockObject(HOLLOW_BRUSH);
}
5.过滤对话框中的背景颜色
SetWindowLong(this->GetSafeHwnd(),GWL_EXSTYLE,
GetWindowLong(this->GetSafeHwnd(),GWL_EXSTYLE)|0x80000);
HINSTANCE hInst = LoadLibrary(L"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(),RGB(100,100,100),10,1); //100,100,100 是要过滤的颜色
}
FreeLibrary(hInst);
}
6.更新对话框的主背景bmp图片
BOOL CDlg::OnEraseBkgnd(CDC* pDC)
{
CRect rect;
CDC memDC;
CBitmap* pOldMemBmp = NULL;
GetWindowRect(&rect);
CBitmap* pBitmap = NULL;
CImage image;
image.Load(m_ImagePath.c_str()); //更新背景只需要更新此处的背景图片的路径
HBITMAP hbmp = image.Detach();
pBitmap = CBitmap::FromHandle(hbmp);
memDC.CreateCompatibleDC(pDC);
pOldMemBmp = memDC.SelectObject(pBitmap);
pDC->BitBlt(0,0,rect.Width(),rect.Height(),&memDC,0,0, SRCCOPY);
if(pOldMemBmp)
{
memDC.SelectObject(pOldMemBmp);
}
image.Destroy();
DeleteObject(pBitmap);
DeleteObject(hbmp);
memDC.DeleteDC();
return TRUE;
}
- MFC中静态文本框贴图处理
- mfc中静态文本框修改
- MFC中静态文本框透明的方法
- MFC静态文本框中创建背景图片
- MFC修改静态文本框中字体
- MFC中设置静态文本框的时间
- MFC中静态文本框等静态控件的的修改
- MFC静态文本框透明
- mfc静态文本框透明
- MFC-静态文本框用法
- MFC 静态文本框控件
- MFC中透贴图
- MFC中改变对话框中静态文本框static text颜色
- MFC中修改静态文本框中文字的字体、颜色
- MFC中修改静态文本框中文字的字体、颜色
- MFC中静态文本框(CStatic)响应鼠标单击事件
- MFC中,动态创建的静态文本框响应单击事件
- MFC 静态文本框修改内容
- 8天入门wpf—— 第四天 模板
- Oracle用户、授权、角色管理
- linux - rsync
- 实现textfield的字数限制问题
- 关于PopuWindow的一个显示与隐藏切换的问题
- MFC中静态文本框贴图处理
- 获取后台数据中文有乱码的解决办法
- 【从MVC框架看MVC架构的设计】
- python os模块
- Bitwise AND of Numbers Range
- Linux下查看80端口是否被占用
- HI3516A模组与开发板产品出来了,效果非常OK!
- tomcat启动时报:IOException while loading persisted sessions: java.io.EOFException的解决方案
- iOS 利用mask layer 使view中扣掉一块露出下边的view