登录
首页 » VC++源码 » VC++ 6.0 实现选中项缩进的列表框

VC++ 6.0 实现选中项缩进的列表框

于 2022-06-13 发布 文件大小:15.28 kB
0 162
下载积分: 2 下载次数: 1

代码说明:

VC++ 6.0 实现选中项缩进的列表框,选中列表项后,该项缩进,文本显示为红色,自定义列表框控件,注意观察选中后的特性,重载控件的DrawItem函数。下面来看实现这一功能的代码段:   dc.Attach(lpDrawItemStruct->hDC);//获取列表框的DC   CRect rect(lpDrawItemStruct->rcItem);//获取列表框的矩形区域   COLORREF bk = dc.GetBkColor();//背景颜色   COLORREF fg = dc.GetTextColor();//系统文本颜色   if(lpDrawItemStruct->itemState & ODS_SELECTED)//该项被选中   {    bk = RGB(180,180,0 );//背景颜色    fg = RGB(255,0,0 );//红色文本   }   dc.SetTextColor(fg);   CBrush brush(bk);   dc.FillRect(&rect,&brush);   if (lpDrawItemStruct->itemState&ODS_SELECTED)   rect.left +=25;//缩进25个象素   int nBkMode = dc.SetBkMode( TRANSPARENT );   CString str;   GetText(lpDrawItemStruct->itemID,str) ;   dc.DrawText(str, &rect, DT_LEFT|DT_VCENTER);//显示文本   dc.SetTextColor(fg);   dc.SetBkMode( nBkMode );   dc.Detach() ;

下载说明:请别用迅雷下载,失败请重下,重下不扣分!

发表评论

0 个回复

  • VC++ 使用互斥对象(Mutex)实现线程同步
    VC++ 使用互斥对象(Mutex)实现线程同步,使用临界区对象实现读、写线程的同步,通过一个写线程和读线程的实例,来演示Mutex实现的线程同步功能。用完后销毁读线程,如下示:   CSingleLock singleLock(&mutex);   singleLock.Lock();   TerminateThread(g_ReadHnd, 0);//终止读线程   singleLock.Unlock();//释放资源   m_ReadEdit.SetWindowText("终止读线程");   GetDlgItem(IDC_STARR)->EnableWindow(true);//启动按钮生效   GetDlgItem(IDC_STOPR)->EnableWindow(false);//停止按钮无效
    2022-04-11 14:27:41下载
    积分:1
  • VC++ MFC DLL的创建:显示问候语信息
    VC++ MFC DLL的创建:显示问候语信息,运行效果如上图所示。
    2022-05-21 08:12:16下载
    积分:1
  • VC6 利用COM实现四则运算
    VC6 利用COM实现四则运算,类似于简单的计算器,两个操作数在操作符的作用下进行运算,显示出运行结果。   可以恢复上次的操作数,编译时目录下的内容会生成在TestCOMCalculator文件夹中。   程序运行效果如界面所示。
    2022-05-07 12:18:00下载
    积分:1
  • VC++ 非模态对话框与应用程序之间的数据交换
    VC++ 6.0演示非模态对话框与应用程序之间的数据交换的实现过程,单击鼠标右键弹出非模态对话框!实现非模态对话框的数据交换!在示例中,用户在窗口中单击鼠标右键,所弹出的颜色设置对话框,就是一个非模态对话框,设置颜色后,将值传回到主窗口。   pDialog->ShowWindow(SW_HIDE);//隐藏对话框   CRect dlgRect;   pDialog->GetWindowRect(&dlgRect);//获取对话框窗口大小   ClientToScreen(&point);//将鼠标位置转换为屏幕坐标   //移动对话框窗口   pDialog->MoveWindow(point.x, point.y,dlgRect.Width(),dlgRect.Height());   //将当前画刷的值赋予对话框变量   pDialog->m_blue=b;   pDialog->m_green=g;   pDialog->m_red=r;   pDialog->UpdateData(false);//更新控件    pDialog->ShowWindow(SW_SHOW);//显示对话框   CView::OnRButtonDown(nFlags, point);   另外还有获取非模态对话框设置的颜色值、获取视图等功能,请下载本实例源码包。
    2022-08-07 22:51:14下载
    积分:1
  • VC++课程设计 背单词软件
    VC++课程设计 背单词软件源代码,VC++课堂作业,在visual studio2010环境下开发的背单词程序,附有完整的源代码,程序采用文件存储信息,有单词复习,修改录,单词游戏,单词测验等功能。背单词过程中,若忘记单词,可按任意键显示正确答案。打错的词会加入错词本,为以后的练习提供纠错机会。本程序的运行需要先注册或设置用户名称,然后将记录各自的背单词情况。
    2022-10-10 05:30:03下载
    积分:1
  • VC++ 实现定制打印页的页眉和页脚
    VC++ 实现定制打印页的页眉和页脚,除了自定义打印页脚和页眉外,还可根据每页显示行数,设置打印页数,并且在需要时,屏蔽默认函数对OnDraw的调用。打印方面的定制,可参考以下代码:   void CMultiPrint2View::PrintHeader(CDC *pDC)//定制页眉   {   pDC->TextOut(0,0,"设置打印页眉和页脚测试:来首诗吧:再别康桥");   }   void CMultiPrint2View::PrintFooter(CDC *pDC)//定制页角   {   CMultiPrint2Doc* pDoc = GetDocument();//获取文档指针   ASSERT_VALID(pDoc);   CString str;   CPoint point(0,-1440*10-1000);   str.Format("当前文档:%s",(LPCSTR)pDoc->GetTitle());//获取当前文档名   pDC->TextOut(point.x,point.y,str);   str.Format("第%d页,共%d页",m_nPage,(pDoc->m_stringArray.GetUpperBound()/pDoc->m_LinePerPage+1));   CSize size=pDC->GetTextExtent(str);//获取输出文本宽度   point.x+=1440*6+1600-size.cx;   pDC->TextOut(point.x,point.y,str);   }完整的代码请下载源码吧。
    2022-07-05 00:30:40下载
    积分:1
  • VC++ 6.0FreeBird软件 仿飞鸽传书,可聊天+传输文件
    VC++ 6.0自写的FreeBird仿飞鸽传书,可聊天+传输文件程序源码,我耗费一个月上百度、参考网上代码,和不断调试出来的一个网络文件传输小软件。可进行局域网的聊天、一对多、多对一、和多对多的传送和续传,理论上这是我本人的实现目的,而且目前经测试已基本实现了上述功能,而且网速一般有几M/S。另外有只打开一个应用程序、CRichEdit的使用、最小到托盘、自动检测在线用户(多播组)等。   做这个小软件的目的不是为了给别人使用,而是想通过开发这么一个小小和软件,体会软件设计的过程和了解网络通信是个大概什么样的东西(这也是我摸索了好久,现在才彻底明白原来Socket通信是这么一回事的)。总而言之:目的是为了学习。
    2023-08-31 14:20:03下载
    积分:1
  • VC++ 获取主机名和IP地址及多线程运行示例
    VC++6.0获取主机名和IP地址,并演示多线程的运行示例,作者:fiwen。   获取IP地址是单击窗口右上角的“获缺按钮,即可显示主机名称和该机IP地址,多线程运行演示则打开后程序立即运行,左右两侧不同的线程,执行不同的任务,各自互不影响。   多线程演示部分,分别用了两个线程,每一个线程控制一个do while循环来运行,比如其中一个线程是这样写的:   CString str;   bool ReadData= TRUE;   int i=1;   do   {    //从1到99的平方    str.Format("%-3d的平方:%-5d",i,i*i);    pList->AddString(str);    Sleep(100);    i++;   }   while (ReadData=TRUE);   return 0;
    2022-01-20 22:35:47下载
    积分:1
  • VC++ Win32 DLL的创建:获取最大和最小数(使用导出函数关键字)
    VC++ 创建Win32 DLL的例子附源码:获取最大和最小数(使用导出函数关键字)。编译本项目源码后,将直接在Debug目录下生成Get_Max_Min.Dll文件。   Get_Max_Min_Dll文件夹下为Win32 DLL的创建:获取最大和最小数(使用.def文件)源码。
    2023-02-27 05:35:03下载
    积分:1
  • VC++ 限定框架窗口的大小和位置
    VC++ 限定框架窗口的大小和位置,无法移动且固定大小的SDI,用VC++编写实现这种固定窗口大小,且无法用鼠标拖动的窗口。窗口是不能改变大小的,窗口标题也不能被拖动,运行程序后,窗口的位置就已经固定,并不能移动和调整大小的操作。相关的代码:   CMenu* pTopMenu = GetSystemMenu(FALSE); //获取系统菜单   pTopMenu -> RemoveMenu(4,MF_BYPOSITION); //去除最大、最小化功能   pTopMenu -> RemoveMenu(2,MF_BYPOSITION); //去除改变尺寸功能   pTopMenu -> RemoveMenu(1,MF_BYPOSITION); //去除移动功能   if( !CFrameWnd::PreCreateWindow(cs) )    return FALSE;   //设置框架窗口的初始大小和位置   cs.cy = ::GetSystemMetrics(SM_CYSCREEN) / 4;    cs.cx = ::GetSystemMetrics(SM_CXSCREEN) / 3;    cs.y = cs.cy / 4;    cs.x = cs.cx / 2;   return TRUE;
    2022-06-14 00:02:23下载
    积分:1
  • 696516资源总数
  • 106914会员总数
  • 0今日下载