• <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++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

            CListCtrl For Beginners(轉(zhuǎn)載)

            Posted on 2007-03-07 21:23 Tauruser 閱讀(1711) 評論(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























            久久国产精品成人免费| 久久午夜电影网| 一本色道久久88—综合亚洲精品| 亚洲精品NV久久久久久久久久| 久久久亚洲AV波多野结衣| 777午夜精品久久av蜜臀| 久久久久久免费一区二区三区| 久久国产成人精品国产成人亚洲| 亚洲色欲久久久综合网东京热| 日本福利片国产午夜久久| 久久久久免费精品国产| 久久亚洲综合色一区二区三区| 久久综合久久美利坚合众国| 91精品国产高清久久久久久91| 伊人色综合久久天天人手人婷| 久久精品不卡| 国产成人久久精品麻豆一区 | 一本久久a久久精品综合香蕉| 亚洲午夜久久久影院伊人| 久久青青草原精品国产不卡| 久久福利青草精品资源站| 性欧美丰满熟妇XXXX性久久久 | 国产精品久久久久久久久鸭| 99久久免费国产精品特黄| 久久精品国产亚洲av瑜伽| 伊人久久大香线焦综合四虎| 99精品久久精品| 久久精品夜夜夜夜夜久久| 亚洲精品无码久久千人斩| 久久国产欧美日韩精品免费| 久久九九免费高清视频| 久久久91人妻无码精品蜜桃HD| 久久久精品午夜免费不卡| 久久综合久久久| 国产巨作麻豆欧美亚洲综合久久| 国产精品美女久久久久| 久久九九青青国产精品| 91性高湖久久久久| 欧美亚洲日本久久精品| 欧美成人免费观看久久| 精品久久久久久久国产潘金莲|