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

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

于 2022-06-13 发布 文件大小:15.28 kB
0 188
下载积分: 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 6.0 示波器源码
    一个漂亮的VC++示波器生成类附源码实例,美观实用,如果你在编写一款采样软件,那么这个示例或许对你很有用,另附上一个示例代码,希望对大家有所帮助。该类提供了一些方法可供调用,比较方便。如果要显示采集到的数据,只要简单的调用就可以了。
    2022-10-20 06:05:04下载
    积分:1
  • vc四国军棋服务端+客户端+源码
    很多人喜欢下四国军棋,不知道其中原理,本代码可以实现四国军棋功能,提供思路,拓展思维。
    2023-01-18 23:55:03下载
    积分:1
  • 多任务多线程断点续传源代码
    VC++下实现多任务多线程并发可断点续传功能的例程源代码VC++下实现多任务多线程并发可断点续传功能的例程源代码
    2022-03-21 18:31:32下载
    积分:1
  • C语言写的超强悍音乐播放器
    这是一款用C写的播放器,超强超漂亮,C语言写的超强悍音乐播放器源代码,先来看运行截图,播放器的界面那可是相当漂亮吧。而且播放功能也很强大。程序主界面经过了美化,运行后在Windows托盘处显示图标,这个程序是大家学习C多媒体编程绝佳的范例,对C感兴趣的不要错过哦。
    2022-02-15 07:45:57下载
    积分:1
  • VC++ .NET 实现窗口内控件自适应屏幕尺寸大小而变化
    VC++ .NET 实现窗口内控件自适应屏幕尺寸大小而变化,这个具体点就是,窗口中的边框和按钮等元素,会随着窗口的变大自动变大,并保持原有的比例,调用了CSelfResizeWindow::Rectify()来实现,我觉得是个很实用的窗体设计技巧。关于本源代码的几点说明:   自定义类CSelfResizeWindow实现窗口和控件的自适应,根据屏幕尺寸调整大校   使用步骤 :   1. 使需要自适应的窗口类继承于类CSelfResizeWindow,在OnInitDialog()中调用    __super::Init(this, 1, 3000);(其中1和3000是资源ID的范围,在Resource.h    中用宏定义的,Init函数的参数根据情况确定。)   2. 给窗口类添加OnSize()消息响应函数,在OnSize()函数    中调用__super::Rectify();即可。
    2023-01-25 01:40:04下载
    积分:1
  • VC++ ado 登录模块实现范例
    VC++ ado 登录模块实现范例,因为使用ADO模块,所以要先初始化COM组件库,然后调用ADO库连接数据库,读取用户名密码是否与数据库的相符,相符则登录成功,不相符则弹出提示信息。本源码比较简单,演示了基本的基于数据库的用户名和密码判断程序,面向VC++初学者吧。
    2023-03-17 05:10:03下载
    积分:1
  • VC++ 表格式简历打印的实现
    本源码演示在VC++中打印简历模板,是一个采用表格设计的简历界面,VC++将按设计的模式打印出来,就像使用Word打印一样的功能。   以下代码可作为参考:   //获取位图所有数据   m_bitdata = m_pRecord->GetFields()->GetItem((long)9)->GetChunk(m_factsize);   HBITMAP m_hmap ;   if (m_bitdata.vt==VT_ARRAY |VT_UI1)   {    //定义一个数据缓冲区    m_bitbuffer = new char[m_factsize];    //将m_buffer指向m_bitdata    SafeArrayAccessData(m_bitdata.parray,(void**)&m_buffer);    //复制位图数据到m_bitbuffer;    memcpy(m_bitbuffer,m_buffer,m_factsize);    SafeArrayUnaccessData(m_bitdata.parray);    void* m_factbitdata ; //实际的位图数据    //temp指向位图信息头    temp = m_bitbuffer+sizeof(BITMAPFILEHEADER);    BITMAPINFOHEADER * m_bitheader = (BITMAPINFOHEADER*)temp;    //获取位图信息,它包括位图信息头和调色板    BITMAPINFO* m_bitinfo = (BITMAPINFO*)temp;    //获取位图的实际数据    m_factbitdata = (void*)(m_buffer+((LPBITMAPFILEHEADER)m_bitbuffer)->bfOffBits);    CClientDC m_dc(this);    //创建位图    hbitmap = CreateDIBitmap(m_dc.m_hDC,m_bitheader,CBM_INIT,m_factbitdata,m_bitinfo,DIB_RGB_COLORS);    delete [] m_bitbuffer;   }
    2022-07-02 18:31:16下载
    积分:1
  • 3个VC++ win注册表编程操作实例
    本源码中有三个VC++操作表的相关例子,每一个都属于比较简单那种,展示注册表的操作技巧,有兴趣的下载源码包。   HKEY hKEY; //定义有关的 hKEY, 在查询结束时要关闭。   LPCTSTR data_Set="SoftwareMicrosoftWindowsCurrentVersion"; //子键目标   //打开与路径 data_Set 相关的 hKEY,第一个参数为根键名称,第二个参数表。   //表示要访问的键的位置,第三个参数必须为0,KEY_READ表示以查询的方式。   //访问注册表,hKEY则保存此函数所打开的键的句柄。   long retopen=(::RegOpenKeyEx(HKEY_LOCAL_MACHINE,data_Set, 0, KEY_READ, &hKEY));   if(retopen!=ERROR_SUCCESS) //如果无法打开hKEY,则终止程序的执行   {    MessageBox("错误: 无法打开有关的hKEY!");    return;   }   //查询有关的数据 (系统用户姓名 owner_Get)。   LPBYTE owner_Get=new BYTE[80];   DWORD type_1=REG_SZ ;   DWORD cbData_1=80;   //hKEY为刚才RegOpenKeyEx()函数所打开的键的句柄,"RegisteredOwner"。   //表示要查 询的键值名,type_1表示查询数据的类型,owner_Get保存所。   //查询的数据,cbData_1表示预设置的数据长度。   //与RegQureyValueEx()类似,hKEY表示已打开的键的句柄,"RegisteredOwner"   //表示要访问的键值名,owner_Set表示新的键值,type_1和cbData_1表示新值。   //的数据类型和数据长度   UpdateData(true);//获得编辑框数据   if(m_Adduser.IsEmpty()||m_Addpassword.IsEmpty())//用户名、密码不能为空   {    AfxMessageBox("输入用户名、密码不能为空!");    return;   }
    2022-02-22 09:55:12下载
    积分:1
  • VC++ 6.0 GetTickCount() 高精度计时功能的实现实例
    本源码演示在VC++ 6.0环境下实现高精度计时功能,可在此基础上修改完善成一个毫秒级计时器。运行编译文件后,单击窗口中的按钮,即可激活计时功能,在弹出的窗口中显示计时时间,以毫秒计,请参见截图。计时部分的具体实现代码请参考以下代码:   void CDemoDlg::OnTest()   {    //开始时间    DWORD dwStart = GetTickCount();    for (int i = 0; i < 10000; i++)    {    for (int j = 0; j < 10000; j++)    {    }    }    //结束时间    DWORD dwStop = GetTickCount();    //时间间隔    DWORD dwElapse = dwStop - dwStart;    CString strText = _T("");    strText.Format(_T("时间间隔:%d毫秒"), dwElapse);    AfxMessageBox(strText);   }
    2022-07-22 05:40:03下载
    积分:1
  • VC++ 使用自定义消息进行线程间的通信
    VC++ 使用自定义消息进行线程间的通信,在本例子中,当计数到17的整数倍时,工作线程通过自定义消息与主线程通信。最后会弹出消息框:当前计数器的计数为17的整数倍。计数器有几个选项:高速计数、低速计数,相关参数设置如下:   SpeedControl=1;   GetDlgItem(IDC_RADIO1)->EnableWindow(true);//单选按钮生效   GetDlgItem(IDC_RADIO2)->EnableWindow(true);   GetDlgItem(IDC_RADIO3)->EnableWindow(true);   GetDlgItem(IDC_STAR)->EnableWindow(false);//开始按钮无效   numinfo.pedit=&m_Num;   numinfo.hwnd=GetSafeHwnd();//获取主线程窗口指针   CWinThread* pThread=AfxBeginThread(ThreadFunc,&numinfo);//创建新的线程并开始执行
    2023-03-13 15:00:04下载
    积分:1
  • 696516资源总数
  • 106914会员总数
  • 0今日下载