[VC]リストボックス水平スクロールバー

posted on 2006年10月17日 0:07 投稿者 konomachi

最近まで、リストボックスの水平スクロールバーは
プロパティの項目にチェックをしてやれば使用できるようになるものだと
ろくに調べもしないで勝手に思い込んでいました

が、

どうも色々とめんどくさいことをしないとダメらしいです
苦戦しましたが、やり方解りましたのでメモっときます

5行くらい文字列をリストボックスに表示し、もっとも長い文字列の長さの行に合わせて水平スクロールバーの長さを調節させる処理
リストボックスの横幅が文字を表示しきれている場合は水平スクロールバーは表示されません

最初に、リストボックスのプロパティのスタイルで水平スクロールバーにチェックしておきます

↓処理。

    CListBox*    lst = (CListBox*)GetDlgItem(IDC_LIST1);    
    TCHAR        RBuff[256];
    UCHAR        bun[129];
    int ii, Size;
    int len = 0;
    CDC            *pListDC;
    CFont        *pListOldFont;
    CString strText;
    CString        msg;
    CString        m[5] = {
        _T("あいうえお"),
        _T("よっぱらい"),
        _T("寿司、てんぷら、通天閣"),
        _T("3. 141592653589793238462643383279"),
        _T("その質問はノーコメントでお願いします。")
    };

    //リストボックス初期化(まっしろ)
    lst->ResetContent();

    // もっとも長い文字列の長さを取得
    for( ii = 0; ii < 5 ; ii++ )
    {
        wsprintf(RBuff, _T("%s\n"), m[ii] );
        lst->AddString( RBuff );

        if( len < strlen( m[ii] ) )
        {
            msg.Format("%s", RBuff );
            len = strlen( m[ii] );
        }
    }

    // リストボックスのデバイスコンテキストを取得
    pListDC = mc_list.GetDC();

    // デバイスコンテキストにリストボックスのフォントを設定
    pListOldFont = pListDC->SelectObject(mc_list.GetFont());

    // 格納した最新データの文字列幅取得
    Size = pListDC->GetTextExtent(msg).cx;

    // 水平スクロールバーを設定
    mc_list.SetHorizontalExtent( Size + 10 );
    CWnd::UpdateData( FALSE );


■後で、説明文の追加とコメントの修正。

コメント

# san diego tuxedo @ 2007年2月3日 20:45

Waking state took advantage of the belt connection is that power at one place can be taken by beans. <a href= http://trk.orokz.info/palazzo-apartments-los-angeles.htm#palazzo+apartments+los+angeles >palazzo apartments los angeles</a> <a href= http://trk.orokz.info/art-deco-apartments-los-angeles.htm#art+deco+apartments+los+angeles >art deco apartments los angeles</a> <a href= http://trk.orokz.info/pink-tuxedo.htm#pink+tuxedo >pink tuxedo</a> <a href= http://trk.orokz.info/tuxedo-tails.htm#tuxedo+tails >tuxedo tails</a> <a href= http://trk.orokz.info/perry-ellis-tuxedo.htm#perry+ellis+tuxedo">http://trk.orokz.info/perry-ellis-tuxedo.htm#perry+ellis+tuxedo >perry ellis tuxedo</a> [url=http://trk.orokz.info/perry-ellis-tuxedo.htm#perry+ellis+tuxedo">http://trk.orokz.info/perry-ellis-tuxedo.htm#perry+ellis+tuxedo]perry ellis tuxedo[/url]

  san diego tuxedo

# re:[VC]リストボックス水平スクロールバー @ 2009年1月10日 13:30

ecbnazxwktqnwimoorxgvidfckxfbg

  xxfovm

# re: [VC]リストボックス水平スクロールバー @ 2009年11月8日 8:53

aanbhq <a href="http://vvxwokisynrx.com/">vvxwokisynrx</a>, [url=http://frsuxqzbfvps.com/]frsuxqzbfvps[/url], [link=http://zbnkombtmcpw.com/]zbnkombtmcpw[/link], http://nbgztrtkgklc.com/

  hsbdjlyk

# re: [VC]リストボックス水平スクロールバー @ 2010年1月14日 11:52

AwVh6Y <a href="http://skwexjbvrrar.com/">skwexjbvrrar</a>, [url=http://gcswaydtizrz.com/]gcswaydtizrz[/url], [link=http://dknugxoykyll.com/]dknugxoykyll[/link], http://brxktaxvzrbu.com/

  rzlozfj

# How earn $ 1000 a week? @ 2010年3月8日 10:07

You can make from 3000$-5000$ a Month with this program! $30 for each refferal!
You will earn money from multiple streams: people search engine, ClickBank, HD Publishing, Google AdSense, HostGator, My Life and GDI (Global Domain International).
Visit site: <a href=http://bit.ly/aLNyID>acme-people-search.com</a>

  AleVaserman