• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Tauruser

            Enjoy Every Day
            posts - 34, comments - 95, trackbacks - 0, articles - 5
              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

            CListCtrl For Beginners(轉載)

            Posted on 2007-03-07 21:23 Tauruser 閱讀(1716) 評論(0)  編輯 收藏 引用 所屬分類: MFC

            The List Control (MFC CListCtrl class) is the type of control that the Windows Explorer uses for it's right-side pane, but figuring out how to use the control can be a different kind of pain. The control is usually used only in "report view", which provides columns for each item. The following shows the basics of adding data to a List Control:

            ???? int ?Index;
            // ?Insert?columns
            ListCtrl.InsertColumn( 0 ,? " One " ,?LVCFMT_LEFT,? - 1 ,? 0 );
            ListCtrl.InsertColumn(
            1 ,? " Two " ,?LVCFMT_LEFT,? - 1 ,? 1 );
            // ?Insert?first?row
            Index? = ?ListCtrl.InsertItem(LVIF_TEXT,? 0 ,? " One?one " ,? 0 ,? 0 ,? 0 ,?NULL);
            ListCtrl.SetItem(Index,?
            1 ,?LVIF_TEXT,? " One?two " ,? 0 ,? 0 ,? 0 ,?NULL);
            // ?Insert?second?row
            Index? = ?ListCtrl.InsertItem(LVIF_TEXT,? 1 ,? " Two?one " ,? 0 ,? 0 ,? 0 ,?NULL);
            ListCtrl.SetItem(Index,?
            1 ,?LVIF_TEXT,? " Two?two " ,? 0 ,? 0 ,? 0 ,?NULL);
            // ?Set?column?widths?(an?optional?nice?touch)
            ListCtrl.SetColumnWidth( 0 ,?LVSCW_AUTOSIZE);
            ListCtrl.SetColumnWidth(
            1 ,?LVSCW_AUTOSIZE);

            If you are using CListView, then you will need to use something such as the following to access the CListCtrl:

            CListCtrl?&ListCtrl?=?GetListCtrl();

            Note that for these to work, the control must have the "LVS_REPORT" style. For list controls in dialogs, including dialogs for CFormView, this style can be set in the dialog editor. If you are using CListView or you are creating list controls using Create, the style can be set in a PreCreateWindow override, as in:

            BOOL?CDumpView::PreCreateWindow(CREATESTRUCT&?cs)?{
            cs.style?
            |=?LVS_REPORT;
            return?CListView::PreCreateWindow(cs);
            }


            Getting a Count of Columns

            The solution for determining the number of columns is not obvious. You must get the header control from the list control and get the number of items (rows) in the header control. So I suggest putting the following in your header:

            CHeaderCtrl?*GetHeaderCtrl()?const?{return?(CHeaderCtrl*)GetDlgItem(0);};
            int?GetColumnsCount()?const?{return?GetHeaderCtrl()->GetItemCount();};


            Deleting All Columns

            Using GetColumnsCount() from above, it is easy to delete all columns.

            void?CListControl::DeleteAllColumns()?{
            ????
            int?i,?n;
            n?
            =?GetColumnsCount();
            for?(i=0;?i<n;?++i)
            ????DeleteColumn(
            0);
            }

            Confusing Terminology


            Microsoft has made things very confusing because the Platform SDK name for a listbox is "ListBox Control" but MFC programmers usually use "list control" to refer to an instance of the CListCtrl class, which is confusing. Also, the MFC class name for a "List View Control" is CListCtrl and CListView is the view class for it. The MFC class name for a "ListBox Control" is CListBox so we would expect the view class for it to also be CListView except there is not a view class. The following summarizes this.

            Platform SDK name:List Boxes
            Window class name: ListBox (See under "Predefined Controls" in User Controls and the documentation for CreateWindow and CreateWindowEx)
            MFC class name:CListBox
            MFC view class name: none

            Platform SDK name:ListView Control
            Window class name: SysListView32 (use WC_LISTVIEW in source code instead, which is defined as "SysListView32")
            MFC class name:CListCtrl
            MFC view class name:CListView























            亚洲精品乱码久久久久久按摩 | 亚洲狠狠婷婷综合久久蜜芽| 亚洲精品无码成人片久久| 成人国内精品久久久久一区| 久久本道久久综合伊人| 精品国产乱码久久久久久呢| 欧美精品一区二区精品久久| 国产香蕉久久精品综合网| 久久狠狠色狠狠色综合| 久久亚洲sm情趣捆绑调教| 久久香蕉国产线看观看99| 亚洲精品乱码久久久久66| 午夜精品久久影院蜜桃| 久久久精品午夜免费不卡| 亚洲精品乱码久久久久久按摩 | 久久99中文字幕久久| 久久精品国产亚洲AV香蕉| 久久精品国产WWW456C0M| 99久久精品国产免看国产一区| 2021少妇久久久久久久久久| 久久亚洲中文字幕精品一区| 少妇高潮惨叫久久久久久| 少妇熟女久久综合网色欲| 久久人人超碰精品CAOPOREN| 久久亚洲综合色一区二区三区 | 国产成年无码久久久久毛片| 日韩AV无码久久一区二区| 中文国产成人精品久久不卡| 一本色道久久综合狠狠躁篇| 久久丝袜精品中文字幕| 无码精品久久一区二区三区| 性高湖久久久久久久久AAAAA| 国产农村妇女毛片精品久久| 国产成人99久久亚洲综合精品| 久久不射电影网| 狠狠人妻久久久久久综合| 国产精品无码久久久久| 久久强奷乱码老熟女网站| 97视频久久久| 久久久久久久97| 亚洲狠狠综合久久|