HOHO:玩弄过CListCtrl的请来看一看,如何更改背景的伸展性?(分少,只给一个人,不好意思) 如题使用SetBkImage()函数设置背景之后,它的大小默认的是原本的图片大小.如何设置图片填充整个屏幕? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 TCHAR szBuffer[_MAX_PATH]; VERIFY(::GetModuleFileName(AfxGetInstanceHandle(), szBuffer, _MAX_PATH));CString sPath;sPath.Format(_T("res://%s/#2/#142"),szBuffer);LVBKIMAGE bki;bki.ulFlags = LVBKIF_STYLE_TILE | LVBKIF_SOURCE_URL ;bki.pszImage = sPath.GetBuffer(sPath.GetLength());bki.cchImageMax = sPath.GetLength();VERIFY(m_cListCtrl.SetBkImage( &bki));在bki.ulFlags里设置LVBKIF_STYLE_TILE属性就可以了 设置好listctrl的背景后,怎么不能刷新显示了呢? 不是的,不需要将图片转换成一定大小看不明白的话可以看看http://www.codeproject.com/listctrl/listctrldemo.aspsPath.Format(_T("res://%s/#2/#142"),szBuffer);中的#2表示RT_BITMAP类型,#142是你的bitmap的id值 AkiraChing(水银),VERIFY(m_aListCtrl.SetBkImage( &bki));怎么通不过? 检查一下sPath.Format(_T("res://%s/#2/#142"),szBuffer);是否正确 我的程序指定路径如下:sPath.Format(_T("file://D:\\Picture\\text.bmp"));有什么错? 当然不行了,sPath.Format(_T("res://%s/#2/#142"),szBuffer);你要把背景添加到工程中,给它一个id比如IDB_LISTBK,假设它的值是2000,那么就是sPath.Format(_T("res://%s/#2/#2000"),szBuffer); VERIFY(m_aListCtrl.SetBkImage( &bki));仍然运行时出错,原因为SetBkImage( &bki);返回FALSE;改用如下代码CBitmap m_aBmp; m_aBmp.LoadBitmap(IDB_BMP_LL); VERIFY(m_aListCtrl.SetBkImage((HBITMAP)m_aBmp,TRUE,0,0)); m_aBmp.DeleteObject();仍然运行时出错,原因为SetBkImage( &bki);返回FALSE;何故? 首先在CExListCtrlApp::InitInstance()加入AfxOleInit();其次代码可以简化一下 LVBKIMAGE bki; bki.ulFlags = LVBKIF_STYLE_TILE | LVBKIF_SOURCE_URL; bki.pszImage = sPath.GetBuffer(sPath.GetLength()); bki.cchImageMax = sPath.GetLength(); m_aListCtrl.SetBkImage(&bki); VERIFY(m_aListCtrl.SetBkImage(&bki));你是vc6,不知上面的代码如下改动可以不 VERIFY(m_aListCtrl.SetBkImage(sPath.GetBuffer())); sPath.ReleaseBuffer();如果不要字体的背景可以加上一句m_cListCtrl.SetTextBkColor(CLR_NONE); 谢谢AkiraChing(水银)!是我自己没看明白MSDNThis is automatically done in MFC applications that make use of ActiveX technology, OLE Automation, OLE Linking/Embedding, or ODBC/DAO operations.我记得好像用向导生成的程序缺省支持ActiveX的。可是编译连接都不报警,MS也确实可恶! 请问我想把png图片除去这个背景颜色的其他颜色拷贝到HDC;方法是什么??? 请问怎么替换提示框的标题栏是MFC的那个消息函数里处理??? 问个dll相关的问题 MFC打开新对话框后,再关闭对话框内存不释放,怎么回事啊? 如何通过鼠标钩子取得当前鼠标所在位置的空间的属性? 如何自制一条消息 有介绍钩子的书或网络文摘吗? 如何实现像qq那样,在托盘区闪动图标,并响应鼠标双击? 请问在那里可以找到VC++中调用Directx做3D云彩等的源程序! 如何完全删除一个对话框阿? 请教一个编译问题. 简单问题:怎么得到IP地址编辑框的值?
VERIFY(::GetModuleFileName(AfxGetInstanceHandle(), szBuffer, _MAX_PATH));
CString sPath;
sPath.Format(_T("res://%s/#2/#142"),szBuffer);LVBKIMAGE bki;
bki.ulFlags = LVBKIF_STYLE_TILE | LVBKIF_SOURCE_URL ;
bki.pszImage = sPath.GetBuffer(sPath.GetLength());
bki.cchImageMax = sPath.GetLength();
VERIFY(m_cListCtrl.SetBkImage( &bki));在bki.ulFlags里设置
LVBKIF_STYLE_TILE属性就可以了
http://www.codeproject.com/listctrl/listctrldemo.aspsPath.Format(_T("res://%s/#2/#142"),szBuffer);
中的#2表示RT_BITMAP类型,#142是你的bitmap的id值
是否正确
sPath.Format(_T("file://D:\\Picture\\text.bmp"));
有什么错?
你要把背景添加到工程中,给它一个id比如IDB_LISTBK,假设它的值是2000,那么就是
sPath.Format(_T("res://%s/#2/#2000"),szBuffer);
仍然运行时出错,原因为SetBkImage( &bki);返回FALSE;
改用如下代码
CBitmap m_aBmp;
m_aBmp.LoadBitmap(IDB_BMP_LL);
VERIFY(m_aListCtrl.SetBkImage((HBITMAP)m_aBmp,TRUE,0,0));
m_aBmp.DeleteObject();
仍然运行时出错,原因为SetBkImage( &bki);返回FALSE;
何故?
AfxOleInit();其次代码可以简化一下
LVBKIMAGE bki;
bki.ulFlags = LVBKIF_STYLE_TILE | LVBKIF_SOURCE_URL;
bki.pszImage = sPath.GetBuffer(sPath.GetLength());
bki.cchImageMax = sPath.GetLength();
m_aListCtrl.SetBkImage(&bki);
VERIFY(m_aListCtrl.SetBkImage(&bki));
你是vc6,不知上面的代码如下改动可以不
VERIFY(m_aListCtrl.SetBkImage(sPath.GetBuffer()));
sPath.ReleaseBuffer();如果不要字体的背景可以加上一句
m_cListCtrl.SetTextBkColor(CLR_NONE);
This is automatically done in MFC applications that make use of ActiveX technology, OLE Automation, OLE Linking/Embedding, or ODBC/DAO operations.
我记得好像用向导生成的程序缺省支持ActiveX的。
可是编译连接都不报警,MS也确实可恶!