请问如何在ListControl控件中加入背景?

Ei 2008-05-25 01:08:23
如题 最好能给个例子 谢谢各位了
...全文
167 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Eleven 2008-05-27
  • 打赏
  • 举报
回复
CListCtrl::SetBkImage(..)可以设置颜色值
Irene12 2008-05-27
  • 打赏
  • 举报
回复
BOOL SetBkColor( COLORREF cr );其中cr可以取值为 RGB(255,255,255);
Torch009 2008-05-27
  • 打赏
  • 举报
回复
自绘吧。DrawItem
菜牛 2008-05-27
  • 打赏
  • 举报
回复
CListCtrl::SetBkImage
Ei 2008-05-26
  • 打赏
  • 举报
回复
能给个思路么?
iswjh 2008-05-26
  • 打赏
  • 举报
回复
1.重定义ListView窗口过程,使用Hook (以下用SDK思路,使用MFC的自己转换)
HHOOK hHook_callwndproc=SetWindowsHookEx(WH_CALLWNDPROC,(HOOKPROC)myHookProc,app.hInstance,GetCurrentThreadId());

//Hook procedure
LRESULT CALLBACK myHookProc(int code,WPARAM wParam,LPARAM lParam)
{
CWPSTRUCT* lpcwps=(CWPSTRUCT*)lParam;


if(code==HC_ACTION)
{
TCHAR szClassName[100];
WNDPROC lpfnOrg;

if(lpcwps->message==WM_NCCREATE)
{
nCount=GetClassName(lpcwps->hwnd,szClassName,100);


//Subclass list view
if(lstrcmp(szClassName,WC_LISTVIEW)==0)
{
//Set new window procedure
lpfnOrg=(WNDPROC)SetWindowLong(lpcwps->hwnd,GWL_WNDPROC,(LONG)NewListViewProc);//保存旧的窗口过程
}
}
}
}


//List control新的窗口过程
LRESULT CALLBACK NewListViewProc(HWND hwnd,UINT msg,WPARAM wParam,LPARAM lParam)
{
switch(msg)
{
case WM_PAINT://MFC中CWnd::OnPaint
{
//重绘代码
}
break;
case WM_NCDESTROY:
SetWindowLong(hwnd,GWL_WNDPROC,(LPARAM)orgWndProc);//恢复旧的窗口过程
break;
default:
return CallWindowProc(orgWndProc,hwnd,msg,wParam,lParam);
}
return 0;
}

}
Ei 2008-05-26
  • 打赏
  • 举报
回复
我之前绘过 ListBox背景
但在ListControl下 没有成功
Ei 2008-05-26
  • 打赏
  • 举报
回复
我是说 自绘的思路```````
Zhang_ZP 2008-05-26
  • 打赏
  • 举报
回复
一楼的意思是叫你自己写个CMyListCtrl : pubic CListCtrl
healer_kx 2008-05-25
  • 打赏
  • 举报
回复
自绘嘛,有几个方法,知道了就搞出来了。

15,980

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧