• <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























            久久影院亚洲一区| 丰满少妇人妻久久久久久| 国产成人无码精品久久久免费| 热99re久久国超精品首页| 激情综合色综合久久综合| 久久国内免费视频| 久久免费精品视频| 久久人人青草97香蕉| 久久国产精品久久国产精品| 少妇被又大又粗又爽毛片久久黑人| 亚洲中文久久精品无码| 久久久久国产| 日本道色综合久久影院| 久久综合88熟人妻| 久久久久久曰本AV免费免费| 久久亚洲国产欧洲精品一| 亚洲AV日韩精品久久久久久久| 久久精品国产一区二区| 久久亚洲精品视频| 国产美女久久精品香蕉69| 久久精品国产乱子伦| 污污内射久久一区二区欧美日韩| 精品国产VA久久久久久久冰| 亚洲国产小视频精品久久久三级 | 久久成人精品| 久久精品国产亚洲av日韩| 久久精品国产色蜜蜜麻豆| 久久久99精品一区二区| 观看 国产综合久久久久鬼色 欧美 亚洲 一区二区 | 亚洲国产精品久久久久网站| 久久婷婷五月综合97色| 亚洲欧洲日产国码无码久久99| 亚洲国产成人久久笫一页 | 久久无码中文字幕东京热| 欧洲国产伦久久久久久久| 久久国产成人亚洲精品影院| 久久国产精品99精品国产987| 国产∨亚洲V天堂无码久久久| 久久99精品国产麻豆| 久久久久国产精品| 91精品国产91久久久久久蜜臀|