青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

posts - 126,  comments - 73,  trackbacks - 0
?
列表控件可以看作是功能增強的ListBox,它提供了四種風格,而且可以同時顯示一列的多中屬性值。MFC中使用CListCtrl類來封裝列表控件的各種操作。通過調(diào)用BOOL Create( DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID );創(chuàng)建一個窗口,dwStyle中可以使用以下一些列表控件的專用風格:
LVS_ICON LVS_SMALLICON LVS_LIST LVS_REPORT 這四種風格決定控件的外觀,同時只可以選擇其中一種,分別對應:大圖標顯示,小圖標顯示,列表顯示,詳細報表顯示
LVS_EDITLABELS 結(jié)點的顯示字符可以被編輯,對于報表風格來講可編輯的只為第一列。
LVS_SHOWSELALWAYS 在失去焦點時也顯示當前選中的結(jié)點
LVS_SINGLESEL 同時只能選中列表中一項
首先你需要設置列表控件所使用的ImageList,如果你使用大圖標顯示風格,你就需要以如下形式調(diào)用:

CImageList* SetImageList( CImageList* pImageList, LVSIL_NORMAL);
如果使用其它三種風格顯示而不想顯示圖標你可以不進行任何設置,否則需要以如下形式調(diào)用:
CImageList* SetImageList( CImageList* pImageList, LVSIL_SMALL);

通過調(diào)用int InsertItem( int nItem, LPCTSTR lpszItem );可以在列表控件中nItem指明位置插入一項,lpszItem為顯示字符。除LVS_REPORT風格外其他三種風格都只需要直接調(diào)用InsertItem就可以了,但如果使用報表風格就必須先設置列表控件中的列信息。

通過調(diào)用int InsertColumn( int nCol, LPCTSTR lpszColumnHeading, int nFormat , int nWidth, int nSubItem);可以插入列。iCol為列的位置,從零開始,lpszColumnHeading為顯示的列名,nFormat為顯示對齊方式,nWidth為顯示寬度,nSubItem為分配給該列的列索引。

在有多列的列表控件中就需要為每一項指明其在每一列中的顯示字符,通過調(diào)用BOOL SetItemText( int nItem, int nSubItem, LPTSTR lpszText );可以設置每列的顯示字符。nItem為設置的項的位置,nSubItem為列位置,lpszText為顯示字符。下面的代碼演示了如何設置多列并插入數(shù)據(jù):

m_list.SetImageList(&m_listSmall,LVSIL_SMALL);//設置ImageList
m_list.InsertColumn(0,"Col 1",LVCFMT_LEFT,300,0);//設置列
m_list.InsertColumn(1,"Col 2",LVCFMT_LEFT,300,1);
m_list.InsertColumn(2,"Col 3",LVCFMT_LEFT,300,2);

m_list.InsertItem(0,"Item 1_1");//插入行
m_list.SetItemText(0,1,"Item 1_2");//設置該行的不同列的顯示字符
m_list.SetItemText(0,2,"Item 1_3");

此外CListCtrl還提供了一些函數(shù)用于得到/修改控件的狀態(tài)。
COLORREF GetTextColor( )/BOOL SetTextColor( COLORREF cr );用于得到/設置顯示的字符顏色。
COLORREF GetTextBkColor( )/BOOL SetTextBkColor( COLORREF cr );用于得到/設置顯示的背景顏色。

void SetItemCount( int iCount );用于得到添加進列表中項的數(shù)量。
BOOL DeleteItem(int nItem);用于刪除某一項,BOOL DeleteAllItems( );將刪除所有項。
BOOL SetBkImage(HBITMAP hbm, BOOL fTile , int xOffsetPercent, int yOffsetPercent);用于設置背景位圖。

CString GetItemText( int nItem, int nSubItem );用于得到某項的顯示字符。

列表控件的消息映射同樣使用ON_NOTIFY宏,形式如同:ON_NOTIFY( wNotifyCode, id, memberFxn ),wNotifyCode為通知代碼,id為產(chǎn)生該消息的窗口ID,memberFxn為處理函數(shù),函數(shù)的原型如同void OnXXXList(NMHDR* pNMHDR, LRESULT* pResult),其中pNMHDR為一數(shù)據(jù)結(jié)構(gòu),在具體使用時需要轉(zhuǎn)換成其他類型的結(jié)構(gòu)。對于列表控件可能取值和對應的數(shù)據(jù)結(jié)構(gòu)為:

LVN_BEGINLABELEDIT 在開始某項編輯字符時發(fā)送,所用結(jié)構(gòu):NMLVDISPINFO
LVN_ENDLABELEDIT 在結(jié)束某項編輯字符時發(fā)送,所用結(jié)構(gòu):NMLVDISPINFO
LVN_GETDISPINFO 在需要得到某項信息時發(fā)送,(如得到某項的顯示字符)所用結(jié)構(gòu):NMLVDISPINFO
關于ON_NOTIFY有很多內(nèi)容,將在以后的內(nèi)容中進行詳細講解。

關于動態(tài)提供結(jié)點所顯示的字符:首先你在項時需要指明lpszItem參數(shù)為:LPSTR_TEXTCALLBACK。在控件顯示該結(jié)點時會通過發(fā)送TVN_GETDISPINFO來取得所需要的字符,在處理該消息時先將參數(shù)pNMHDR轉(zhuǎn)換為LPNMLVDISPINFO,然后填充其中item.pszText。通過item中的iItem,iSubItem可以知道當前顯示的為那一項。下面的代碼演示了這種方法:

char szOut[8][3]={"No.1","No.2","No.3"};
//添加結(jié)點
m_list.InsertItem(LPSTR_TEXTCALLBACK,...)
m_list.InsertItem(LPSTR_TEXTCALLBACK,...)
//處理消息
void CParentWnd::OnGetDispInfoList(NMHDR* pNMHDR, LRESULT* pResult)
{
    LV_DISPINFO* pLVDI = (LV_DISPINFO*)pNMHDR;
    pLVDI->item.pszText=szOut[pTVDI->item.iItem];//通過iItem得到需要顯示的字符在數(shù)組中的位置
    *pResult = 0;
}

關于編輯某項的顯示字符:(在報表風格中只對第一列有效)首先需要設置列表控件的LVS_EDITLABELS風格,在開始編輯時該控件將會發(fā)送LVN_BEGINLABELEDIT,你可以通過在處理函數(shù)中返回TRUE來取消接下來的編輯,在編輯完成后會發(fā)送LVN_ENDLABELEDIT,在處理該消息時需要將參數(shù)pNMHDR轉(zhuǎn)換為LPNMLVDISPINFO,然后通過其中的item.pszText得到編輯后的字符,并重置顯示字符。如果編輯在中途中取消該變量為NULL。下面的代碼說明如何處理這些消息:

//處理消息 LVN_BEGINLABELEDIT void CParentWnd::OnBeginEditList(NMHDR* pNMHDR, LRESULT* pResult)
{
    LV_DISPINFO* pLVDI = (LV_DISPINFO*)pNMHDR;
    if(pLVDI->item.iItem==0);//判斷是否取消該操作
         *pResult = 1;
    else
         *pResult = 0;
}
//處理消息 LVN_BEGINLABELEDIT
void CParentWnd::OnBeginEditList(NMHDR* pNMHDR, LRESULT* pResult)
{
    LV_DISPINFO* pLVDI = (LV_DISPINFO*)pNMHDR;
    if(pLVDI->item.pszText==NULL);//判斷是否已經(jīng)取消取消編輯
          m_list.SetItemText(pLVDI->item.iItem,0,pLVDI->pszText);//重置顯示字符
    *pResult = 0;
}

上面講述的方法所進行的消息映射必須在父窗口中進行(同樣WM_NOTIFY的所有消息都需要在父窗口中處理)。

如何得到當前選中項位置:在列表控件中沒有一個類似于ListBox中GetCurSel()的函數(shù),但是可以通過調(diào)用GetNextItem( -1, LVNI_ALL   LVNI_SELECTED);得到選中項位置。



from:http://www.hackhome.com/2005/1-24/09011321509.shtml
posted on 2007-03-16 17:47 我風 閱讀(668) 評論(0)  編輯 收藏 引用

只有注冊用戶登錄后才能發(fā)表評論。
網(wǎng)站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


<2007年3月>
25262728123
45678910
11121314151617
18192021222324
25262728293031
1234567

常用鏈接

留言簿(12)

隨筆分類

隨筆檔案

文章檔案

相冊

收藏夾

C++

MyFavorite

搜索

  •  

積分與排名

  • 積分 - 329008
  • 排名 - 75

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲美女网站| 中文日韩在线| 欧美日韩国产免费观看| 久久综合狠狠综合久久激情| 性欧美暴力猛交69hd| 亚洲欧美日韩国产一区二区| 午夜精品一区二区三区在线视| 久久av一区二区三区漫画| 欧美一区二区播放| 老司机精品视频一区二区三区| 欧美.www| 亚洲免费观看高清完整版在线观看| 一本色道久久综合狠狠躁篇怎么玩| 亚洲网在线观看| 久久se精品一区二区| 欧美成人黑人xx视频免费观看| 欧美色偷偷大香| 国产日产欧产精品推荐色| 精品动漫3d一区二区三区免费 | 亚洲国产日韩欧美综合久久 | 亚洲欧美日韩国产精品| 欧美在线视频导航| 亚洲高清三级视频| 在线视频精品一区| 久久夜色精品| 国产精品夜夜夜| 亚洲第一区在线| 午夜欧美电影在线观看| 欧美大片91| 午夜日韩视频| 欧美日韩国产综合网| 红桃视频欧美| 亚洲免费在线电影| 91久久久久久久久| 久久久精品网| 国产日韩精品入口| 亚洲调教视频在线观看| 欧美成人午夜剧场免费观看| 午夜国产精品影院在线观看| 欧美激情四色| 亚洲国产婷婷| 久久久无码精品亚洲日韩按摩| 99在线精品免费视频九九视| 久久婷婷丁香| 国内不卡一区二区三区| 午夜一级久久| 一区二区欧美国产| 欧美精品久久久久久久| 亚洲国产99精品国自产| 久久免费高清| 新狼窝色av性久久久久久| 欧美午夜精品久久久久久超碰| 日韩视频三区| 最新国产成人av网站网址麻豆| 久久久久久9999| 激情另类综合| 裸体丰满少妇做受久久99精品| 久久av一区二区三区| 国产三级精品三级| 久久国产精品99国产精| 午夜久久电影网| 国产欧美一区二区精品婷婷| 午夜精品一区二区三区四区| 在线视频你懂得一区| 欧美视频在线观看免费网址| 中文成人激情娱乐网| 99精品久久久| 欧美性天天影院| 亚洲综合电影| 欧美一区1区三区3区公司| 国产一区二区三区久久悠悠色av| 久久成人18免费网站| 欧美一区二区| 亚洲电影一级黄| 亚洲国产天堂久久综合| 欧美精品二区| 猛男gaygay欧美视频| 一区电影在线观看| 欧美四级在线| 久久精品毛片| 另类综合日韩欧美亚洲| 91久久夜色精品国产网站| 亚洲国产精品一区二区www在线| 欧美成人激情在线| 中日韩视频在线观看| 欧美在线高清视频| 亚洲国产第一页| 亚洲六月丁香色婷婷综合久久| 欧美日韩直播| 久久久国产91| 欧美精品在线一区二区| 午夜亚洲一区| 欧美成人午夜视频| 午夜精品一区二区三区四区| 久久免费视频观看| 亚洲一区二区在线视频| 久久精品国产999大香线蕉| 最新国产乱人伦偷精品免费网站| av成人免费| 在线日韩中文| 午夜国产精品视频| 一区二区三区国产在线观看| 午夜精品久久久久影视| 亚洲精品一区二区网址 | 亚洲精品在线三区| 国产女主播一区二区| 亚洲第一免费播放区| 国产精品一区二区久激情瑜伽| 你懂的亚洲视频| 国产伦精品一区二区三区照片91 | 久久中文在线| 狠狠色狠狠色综合人人| 先锋影音网一区二区| 伊人久久噜噜噜躁狠狠躁| av成人免费观看| 亚洲精品日韩精品| 久热精品在线视频| 亚洲自拍三区| 欧美激情乱人伦| 久久久www成人免费精品| 欧美精品黄色| 亚洲高清不卡在线观看| 国产日韩欧美黄色| 亚洲作爱视频| 一区二区三区欧美激情| 老司机成人在线视频| 久久精品国产欧美亚洲人人爽| 欧美日韩国产高清| 最新69国产成人精品视频免费| 亚洲成色777777女色窝| 久久国产精品99精品国产| 欧美一区1区三区3区公司| 亚洲高清视频在线观看| 久久狠狠久久综合桃花| 亚洲午夜在线视频| 欧美h视频在线| 蜜桃久久av一区| 国产综合亚洲精品一区二| 亚洲综合国产精品| 午夜精品一区二区在线观看| 欧美日韩一区二| 亚洲精品九九| 在线性视频日韩欧美| 欧美大尺度在线观看| 亚洲春色另类小说| 亚洲精品少妇网址| 欧美日韩国产综合在线| 亚洲精品永久免费| 这里只有精品在线播放| 欧美日韩一区二区三区在线看| 亚洲激情在线观看视频免费| 日韩亚洲欧美成人一区| 欧美精品一区二区三区四区| 91久久久亚洲精品| 一本色道久久综合亚洲精品婷婷 | 国产精品久久久一区麻豆最新章节| 亚洲国内自拍| 99pao成人国产永久免费视频| 欧美黄色免费| 一本久道久久综合狠狠爱| 亚洲欧美日本另类| 国产综合欧美| 欧美精品偷拍| 亚洲影视在线| 免费亚洲电影| 亚洲一区二区三区四区五区黄| 国产精品v欧美精品∨日韩| 午夜一区二区三区不卡视频| 裸体素人女欧美日韩| 一区二区三区欧美| 国产综合久久久久久鬼色| 欧美freesex交免费视频| 亚洲一卡久久| 欧美激情网友自拍| 午夜在线一区| 亚洲韩国日本中文字幕| 国产精品高潮久久| 久久久精品tv| 亚洲一区二区视频| 欧美国产一区二区| 亚洲欧美制服另类日韩| 亚洲激情视频在线| 国产精品亚洲欧美| 欧美精品国产精品| 久久婷婷丁香| 亚洲欧美日韩人成在线播放| 欧美电影免费网站| 久久国产精品久久精品国产 | 在线精品观看| 国产精品福利久久久| 欧美成人视屏| 久久久久久久精| 中国亚洲黄色| 亚洲清纯自拍| 欧美顶级少妇做爰| 欧美呦呦网站| 亚洲综合视频一区| 日韩视频一区二区三区在线播放免费观看| 一区二区三区福利| 日韩一级免费|