亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? visual c++-mfc開發指南.htm

?? 系統了解vc開發是一篇很好的學習mfc的文章
?? HTM
字號:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0063)http://www.lzu.edu.cn/netteach/bcyy/newles/VC/teach_road_47.htm -->
<HTML><HEAD><TITLE>Visual C++/MFC開發指南</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb_2312-80">
<META content="MSHTML 6.00.2800.1586" name=GENERATOR>
<SCRIPT language=JavaScript src=""></SCRIPT>
<LINK href="../main.css" rel=stylesheet></HEAD>
<BODY>
<TABLE cellSpacing=0 cellPadding=0 width="98%" align=center>
  <TBODY>
  <TR>
    <TD>
      <TABLE cellSpacing=0 cellPadding=2 width="100%" border=0>
        <TBODY>
        <TR>
          <TD vAlign=center align=middle width="30%" bgColor=#003d84> </TD>
          <TD vAlign=center align=middle width="70%" bgColor=#003d84> </TD></TR>
        <TR>
          <TD align=middle bgColor=#0080c0 colSpan=2><FONT 
            color=white>您當前位置</FONT> <A 
            href="http://www.lzu.edu.cn/netteach/bcyy/newles/index.htm"><FONT 
            color=white>首頁</FONT></A> <A 
            href="http://www.lzu.edu.cn/netteach/bcyy/newles/VC/index.htm"><FONT 
            color=white>開發教程</FONT></A> <FONT class=eng color=white>4.7 Tree 
            Ctrl</FONT>
            <SCRIPT language=JavaScript>write_command();</SCRIPT>
          </TD></TR></TBODY></TABLE><!--標記放置區域 END-->
      <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
        <TBODY>
        <TR>
          <TD>  
            <P align=center><BIG><FONT class=eng>4.7 Tree Ctrl</FONT></BIG></P>
            <TABLE width="100%" align=center border=0>
              <TBODY>
              <TR>
                <TD><SMALL>
                  <P>樹形控件TreeCtrl和下節要講的<A 
                  href="http://www.lzu.edu.cn/netteach/bcyy/newles/VC/teach_road_48.htm">列表控件 
                  ListCtrl</A>在系統中大量被使用,例如Windows資源管理器就是一個典型的例子。</P>
                  <P>樹形控件可以用于樹形的結構,其中有一個根接點(Root)然后下面有許多子結點,而每個子結點上有允許有一個或多個或沒有子結點。MFC中使用CTreeCtrl類來封裝樹形控件的各種操作。通過調用<BR>BOOL 
                  Create( DWORD dwStyle, const RECT&amp; rect, CWnd* pParentWnd, 
                  UINT nID );創建一個窗口,dwStyle中可以使用以下一些樹形控件的專用風格: 
                  <UL>
                    <LI><B>TVS_HASLINES</B> 在父/子結點之間繪制連線 
                    <LI><B>TVS_LINESATROOT</B> 在根/子結點之間繪制連線 
                    <LI><B>TVS_HASBUTTONS</B> 在每一個結點前添加一個按鈕,用于表示當前結點是否已被展開 
                    <LI><B>TVS_EDITLABELS</B> 結點的顯示字符可以被編輯 
                    <LI><B>TVS_SHOWSELALWAYS</B> 在失去焦點時也顯示當前選中的結點 
                    <LI><B>TVS_DISABLEDRAGDROP</B> 不允許Drag/Drop 
                    <LI><B>TVS_NOTOOLTIPS</B> 不使用ToolTip顯示結點的顯示字符 
                  </LI></UL>在樹形控件中每一個結點都有一個句柄(HTREEITEM),同時添加結點時必須提供的參數是該結點的父結點句柄,(其中根Root結點只有一個,既不可以添加也不可以刪除)利用<BR>HTREEITEM 
                  InsertItem( LPCTSTR lpszItem, HTREEITEM hParent = TVI_ROOT, 
                  HTREEITEM hInsertAfter = TVI_LAST 
                  );可以添加一個結點,pszItem為顯示的字符,hParent代表父結點的句柄,當前添加的結點會排在hInsertAfter表示的結點的后面,返回值為當前創建的結點的句柄。下面的代碼會建立一個如下形式的樹形結構: 
<PRE>+--- Parent1
    +--- Child1_1
    +--- Child1_2
    +--- Child1_3
+--- Parent2
+--- Parent3

<FONT color=green>/*假設m_tree為一個CTreeCtrl對象,而且該窗口已經創建*/</FONT>
HTREEITEM hItem,hSubItem;
hItem = m_tree.InsertItem("Parent1",TVI_ROOT);<FONT color=green>在根結點上添加Parent1</FONT>
hSubItem = m_tree.InsertItem("Child1_1",hItem);<FONT color=green>//在Parent1上添加一個子結點</FONT>
hSubItem = m_tree.InsertItem("Child1_2",hItem,hSubItem);<FONT color=green>//在Parent1上添加一個子結點,排在Child1_1后面</FONT>
hSubItem = m_tree.InsertItem("Child1_3",hItem,hSubItem);

hItem = m_tree.InsertItem("Parent2",TVI_ROOT,hItem);    
hItem = m_tree.InsertItem("Parent3",TVI_ROOT,hItem);    
</PRE>如果你希望在每個結點前添加一個小圖標,就必需先調用CImageList* SetImageList( 
                  CImageList * pImageList, int nImageListType 
                  );指明當前所使用的ImageList,nImageListType為TVSIL_NORMAL。在調用完成后控件中使用圖片以設置的ImageList中圖片為準。然后調用<BR>HTREEITEM 
                  InsertItem( LPCTSTR lpszItem, int nImage, int nSelectedImage, 
                  HTREEITEM hParent = TVI_ROOT, HTREEITEM hInsertAfter = 
                  TVI_LAST);添加結點,nImage為結點沒被選中時所使用圖片序號,nSelectedImage為結點被選中時所使用圖片序號。下面的代碼演示了ImageList的設置。 
<PRE><FONT color=green>/*m_list 為CImageList對象
IDB_TREE 為16*(16*4)的位圖,每個圖片為16*16共4個圖標*/</FONT>
m_list.Create(IDB_TREE,16,4,RGB(0,0,0));
m_tree.SetImageList(&amp;m_list,TVSIL_NORMAL);
m_tree.InsertItem("Parent1",0,1);<FONT color=green>//添加,選中時顯示圖標1,未選中時顯示圖標0</FONT>
</PRE>
                  <P>此外CTreeCtrl還提供了一些函數用于得到/修改控件的狀態。 <BR>HTREEITEM 
                  GetSelectedItem( );將返回當前選中的結點的句柄。BOOL SelectItem( HTREEITEM 
                  hItem );將選中指明結點。 <BR>BOOL GetItemImage( HTREEITEM hItem, 
                  int&amp; nImage, int&amp; nSelectedImage ) / BOOL 
                  SetItemImage( HTREEITEM hItem, int nImage, int nSelectedImage 
                  )用于得到/修改某結點所使用圖標索引。 <BR>CString GetItemText( HTREEITEM hItem ) 
                  /BOOL SetItemText( HTREEITEM hItem, LPCTSTR lpszItem 
                  );用于得到/修改某一結點的顯示字符。 <BR>BOOL DeleteItem( HTREEITEM hItem 
                  );用于刪除某一結點,BOOL DeleteAllItems( );將刪除所有結點。 </P>
                  <P>此外如果想遍歷樹可以使用下面的函數: <BR>HTREEITEM GetRootItem( );得到根結點。 
                  <BR>HTREEITEM GetChildItem( HTREEITEM hItem );得到子結點。 
                  <BR>HTREEITEM GetPrevSiblingItem/GetNextSiblingItem( HTREEITEM 
                  hItem );得到指明結點的上/下一個兄弟結點。 <BR>HTREEITEM GetParentItem( 
                  HTREEITEM hItem );得到父結點。 </P>
                  <P>樹形控件的消息映射使用ON_NOTIFY宏,形式如同:ON_NOTIFY( wNotifyCode, id, 
                  memberFxn 
                  ),wNotifyCode為通知代碼,id為產生該消息的窗口ID,memberFxn為處理函數,函數的原型如同void 
                  OnXXXTree(NMHDR* pNMHDR, LRESULT* 
                  pResult),其中pNMHDR為一數據結構,在具體使用時需要轉換成其他類型的結構。對于樹形控件可能取值和對應的數據結構為: 

                  <UL>
                    <LI>TVN_SELCHANGED 在所選中的結點發生改變后發送,所用結構:NMTREEVIEW 
                    <LI>TVN_ITEMEXPANDED 在某結點被展開后發送,所用結構:NMTREEVIEW 
                    <LI>TVN_BEGINLABELEDIT 在開始編輯結點字符時發送,所用結構:NMTVDISPINFO 
                    <LI>TVN_ENDLABELEDIT 在結束編輯結點字符時發送,所用結構:NMTVDISPINFO 
                    <LI>TVN_GETDISPINFO 
                    在需要得到某結點信息時發送,(如得到結點的顯示字符)所用結構:NMTVDISPINFO 
                  </LI></UL>關于ON_NOTIFY有很多內容,將在以后的內容中進行詳細講解。 
                  <P><STRONG>關于動態提供結點所顯示的字符</STRONG>:首先你在添加結點時需要指明lpszItem參數為:LPSTR_TEXTCALLBACK。在控件顯示該結點時會通過發送TVN_GETDISPINFO來取得所需要的字符,在處理該消息時先將參數pNMHDR轉換為LPNMTVDISPINFO,然后填充其中item.pszText。但是我們通過什么來知道該結點所對應的信息呢,我的做法是在添加結點后設置其lParam參數,然后在提供信息時利用該參數來查找所對應的信息。下面的代碼說明了這種方法: 
<PRE>char szOut[8][3]={"No.1","No.2","No.3"};

//添加結點
HTREEITEM hItem = m_tree.InsertItem(LPSTR_TEXTCALLBACK,...)
m_tree.SetItemData(hItem, 0 );
hItem = m_tree.InsertItem(LPSTR_TEXTCALLBACK,...)
m_tree.SetItemData(hItem, 1 );
//處理消息
void CParentWnd::OnGetDispInfoTree(NMHDR* pNMHDR, LRESULT* pResult)
{
	TV_DISPINFO* pTVDI = (TV_DISPINFO*)pNMHDR;
	pTVDI-&gt;item.pszText=szOut[pTVDI-&gt;item.lParam];//通過lParam得到需要顯示的字符在數組中的位置
	*pResult = 0;
}
</PRE>
                  <P><STRONG>關于編輯結點的顯示字符</STRONG>:首先需要設置樹形控件的TVS_EDITLABELS風格,在開始編輯時該控件將會發送TVN_BEGINLABELEDIT,你可以通過在處理函數中返回TRUE來取消接下來的編輯,在編輯完成后會發送TVN_ENDLABELEDIT,在處理該消息時需要將參數pNMHDR轉換為LPNMTVDISPINFO,然后通過其中的item.pszText得到編輯后的字符,并重置顯示字符。如果編輯在中途中取消該變量為NULL。下面的代碼說明如何處理這些消息: 
<PRE>//處理消息 TVN_BEGINLABELEDIT
void CParentWnd::OnBeginEditTree(NMHDR* pNMHDR, LRESULT* pResult)
{
	TV_DISPINFO* pTVDI = (TV_DISPINFO*)pNMHDR;
	if(pTVDI-&gt;item.lParam==0);//判斷是否取消該操作
		*pResult = 1;
	else
		*pResult = 0;
}
//處理消息 TVN_BEGINLABELEDIT
void CParentWnd::OnBeginEditTree(NMHDR* pNMHDR, LRESULT* pResult)
{
	TV_DISPINFO* pTVDI = (TV_DISPINFO*)pNMHDR;
	if(pTVDI-&gt;item.pszText==NULL);//判斷是否已經取消取消編輯
		m_tree.SetItemText(pTVDI-&gt;item.hItem,pTVDI-&gt;pszText);//重置顯示字符
	*pResult = 0;
}
</PRE>上面講述的方法所進行的消息映射必須在父窗口中進行(同樣WM_NOTIFY的所有消息都需要在父窗口中處理)。 
                  </SMALL></TD></TR>
              <TR>
                <TD><SMALL>
                  <P align=center><A 
                  href="http://www.lzu.edu.cn/netteach/bcyy/newles/VC/index.htm#charpter4">返回</A></P></SMALL></TD></TR></TBODY></TABLE>
            <P align=center><SMALL>版權所有 聞怡洋 
  </SMALL></P></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></BODY></HTML>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产三级精品三级在线专区| 欧美猛男超大videosgay| 中日韩av电影| 国产日韩欧美制服另类| 久久亚洲一级片| 久久欧美一区二区| 久久久亚洲精品一区二区三区| 欧美mv和日韩mv国产网站| 555夜色666亚洲国产免| 欧美一级欧美三级| 日韩一卡二卡三卡| 久久欧美中文字幕| 国产精品视频线看| 亚洲一区二区三区影院| 亚洲一区二区三区中文字幕在线 | 成人激情av网| 91亚洲午夜精品久久久久久| 欧美亚洲动漫精品| 日韩三级视频在线看| 久久综合网色—综合色88| 国产免费久久精品| 亚洲一级二级在线| 久久99九九99精品| eeuss影院一区二区三区| 在线观看国产一区二区| 欧美一级久久久久久久大片| 久久精品欧美日韩| 亚洲大片精品永久免费| 国产综合色视频| 色哟哟国产精品免费观看| 91精品国产高清一区二区三区| 久久中文字幕电影| 一区二区成人在线视频| 久久99国产精品免费| 99久久精品免费看国产免费软件| 欧美理论电影在线| 中文字幕第一区| 日韩二区在线观看| 菠萝蜜视频在线观看一区| 欧美美女bb生活片| 日韩一区日韩二区| 精品一区二区久久| 欧美午夜在线观看| 国产精品视频免费看| 日本一道高清亚洲日美韩| 成人av小说网| 精品精品欲导航| 亚洲小说欧美激情另类| 成人精品高清在线| 欧美xxxxxxxxx| 午夜电影一区二区| 色天天综合色天天久久| 26uuu精品一区二区| 日本在线不卡视频| 欧美性色黄大片手机版| 中文字幕巨乱亚洲| 国产自产2019最新不卡| 日韩色视频在线观看| 亚洲一二三级电影| 91久久精品一区二区| 国产精品乱子久久久久| 久草精品在线观看| 日韩视频不卡中文| 日韩成人精品视频| 7777精品伊人久久久大香线蕉| 亚洲美女在线一区| 99久久久久久| 综合色天天鬼久久鬼色| 播五月开心婷婷综合| 国产三级欧美三级日产三级99| 美日韩一区二区| 欧美一区午夜视频在线观看| 午夜成人在线视频| 51精品视频一区二区三区| 天堂va蜜桃一区二区三区| 欧美日韩国产精选| 视频一区欧美精品| 日韩精品一区二区三区在线观看| 天天影视网天天综合色在线播放| 欧美精三区欧美精三区| 丝袜美腿亚洲色图| 91精品麻豆日日躁夜夜躁| 喷水一区二区三区| 欧美成人a在线| 国产一区二区三区精品欧美日韩一区二区三区 | 亚洲午夜羞羞片| 欧美日韩一级大片网址| 亚洲18影院在线观看| 日韩一区二区免费在线观看| 激情综合五月天| 国产精品毛片高清在线完整版 | 99久久婷婷国产综合精品| 亚洲色图欧美在线| 欧美日韩国产影片| 久色婷婷小香蕉久久| 国产午夜三级一区二区三| 99r国产精品| 午夜精品久久久久久| 欧美一区二区精品| 风流少妇一区二区| 亚洲一线二线三线久久久| 91精品国模一区二区三区| 国产传媒一区在线| 亚洲精选一二三| 日韩欧美国产系列| 不卡一区中文字幕| 三级影片在线观看欧美日韩一区二区 | 国产精品久久99| 欧美日韩高清影院| 国产高清不卡一区| 亚洲制服丝袜一区| 久久久久综合网| 欧美亚洲高清一区| 成人综合在线视频| 日韩电影一二三区| 亚洲三级小视频| 国产欧美一区二区三区鸳鸯浴| heyzo一本久久综合| 全国精品久久少妇| 亚洲视频一二三区| 久久视频一区二区| 欧美日韩中文一区| 成人av影视在线观看| 久久国产精品一区二区| 亚洲综合在线免费观看| 国产欧美日韩精品在线| 91精品国产免费久久综合| 91色乱码一区二区三区| 国产精品亚洲一区二区三区妖精| 亚洲一区免费视频| 中文字幕在线不卡一区二区三区| 日韩精品中文字幕一区二区三区| 欧美最猛黑人xxxxx猛交| 成人黄色网址在线观看| 国产自产2019最新不卡| 日本亚洲天堂网| 午夜私人影院久久久久| 综合色中文字幕| 国产精品久久久久久久久免费樱桃 | 国内久久精品视频| 日韩av午夜在线观看| 亚洲国产你懂的| 一区二区三区在线视频免费| 亚洲欧洲日本在线| 国产精品国产三级国产aⅴ原创| 久久久综合九色合综国产精品| 欧美一级视频精品观看| 欧美日韩在线一区二区| 在线精品国精品国产尤物884a| 91色视频在线| 91精彩视频在线| 在线视频一区二区免费| 在线观看亚洲精品| 欧美丝袜第三区| 欧美三级三级三级| 91精品综合久久久久久| 91精品国产乱码久久蜜臀| 欧美精三区欧美精三区| 日韩丝袜情趣美女图片| 欧美xingq一区二区| 久久精品人人做| 国产精品传媒视频| 综合色天天鬼久久鬼色| 一区二区三区中文在线观看| 亚洲在线视频免费观看| 麻豆成人免费电影| 国产精品综合一区二区三区| 国产不卡视频在线播放| 色诱亚洲精品久久久久久| 欧美美女网站色| www一区二区| 中文字幕日本乱码精品影院| 亚洲日本va午夜在线影院| 亚洲一区二区三区四区在线免费观看 | 粉嫩在线一区二区三区视频| 波多野洁衣一区| 欧美在线视频你懂得| 日韩一级在线观看| 国产精品美日韩| 污片在线观看一区二区| 国产精品2024| 91黄色免费看| 久久这里只有精品首页| 亚洲精品写真福利| 美女在线观看视频一区二区| 成人高清视频在线| 欧美日韩国产一二三| 久久久久久免费| 亚洲欧美成aⅴ人在线观看| 日韩电影免费在线观看网站| 风间由美一区二区三区在线观看| 欧美在线观看一区| 久久久精品蜜桃| 亚洲成人福利片| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 亚洲欧洲在线观看av| 美女视频黄 久久| 91黄色在线观看| 久久精品亚洲麻豆av一区二区| 亚洲午夜在线观看视频在线|