zoukankan      html  css  js  c++  java
  • MFC中实现listbox水平向滚动条

    1、添加listbox设置horizontal scroll为true

    2、新建类CNListBox,继承类CListBox

    3、新类头文件声明如下:

    #ifndef _IHLISTBOX_H_
    #define _IHLISTBOX_H_

    class CNListBox: public CListBox
    {

    .......
    public:

    int AddString( LPCTSTR lpszItem );
    int InsertString( int nIndex, LPCTSTR lpszItem );

    void RefushHorizontalScrollBar( void );

    };

    #endif

    4、新类cpp文件代码如下

    int CNListBox::AddString( LPCTSTR lpszItem )
    {
    int nResult = CListBox::AddString( lpszItem );

    RefushHorizontalScrollBar();

    return nResult;
    }

    int CNListBox::InsertString( int nIndex, LPCTSTR lpszItem )
    {
    int nResult = CListBox::InsertString( nIndex, lpszItem );

    RefushHorizontalScrollBar();

    return nResult;
    }

    void CNListBox::RefushHorizontalScrollBar( void )
    {
    CDC *pDC = this->GetDC();
    if ( NULL == pDC )
    {
       return;
    }

    int nCount = this->GetCount();
    if ( nCount < 1 )
    {
       this->SetHorizontalExtent( 0 );
       return;
    }

    int nMaxExtent = 0;
    CString szText;
    for ( int i = 0; i < nCount; ++i )
    {
       this->GetText( i, szText );
       CSize &cs = pDC->GetTextExtent( szText );
       if ( cs.cx > nMaxExtent )
       {
        nMaxExtent = cs.cx;
       }
    }

    this->SetHorizontalExtent( nMaxExtent );
    }

    5、可以在其他文件中使用该类

    CPP文件中引用如下头文件

    #include "NListBox.h"
    #define LIST ((CNListBox* )(GetDlgItem(IDC_Point)))

    添加字段代码如下:

    LIST->AddString( _T("11111111111") );

  • 相关阅读:
    Spring总结四:IOC和DI 注解方式
    Spring总结二:IOC(控制反转)xml方式
    Spring总结一:Srping快速入门
    TCP UDP HTTP 的关系和区别
    sql 一些偶尔会用到的写法和函数 不定时更新
    AngularJS分层开发
    AngularJS入门
    url和uri的区别
    MyBatis总结八:缓存介绍(一级缓存,二级缓存)
    Javascript 中 == 与=== 对比
  • 原文地址:https://www.cnblogs.com/tangseng/p/2955052.html
Copyright © 2011-2022 走看看