freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

vc實(shí)驗(yàn)手冊(cè)-資料下載頁(yè)

2025-06-26 00:27本頁(yè)面
  

【正文】 opy和Clear結(jié)合使用。最后介紹一下輸入框幾種常用的消息映射宏: ON_EN_CHANGE 輸入框中文字更新后產(chǎn)生 ON_EN_ERRSPACE 輸入框無(wú)法分配內(nèi)存時(shí)產(chǎn)生 ON_EN_KILLFOCUS / ON_EN_SETFOCUS 在輸入框失去/得到輸入焦點(diǎn)時(shí)產(chǎn)生 使用以上幾種消息映射的方法為定義原型如:afx_msg void memberFxn( )。的函數(shù),并且定義形式如ON_Notification( id, memberFxn )的消息映射。如果在對(duì)話(huà)框中使用輸入框,Class Wizard會(huì)自動(dòng)列出相關(guān)的消息,并能自動(dòng)產(chǎn)生消息映射代碼。 Status Bar控件狀態(tài)條用于顯示一些提示字符。MFC中使用CStatusBar類(lèi)來(lái)封裝狀態(tài)條控件的各種操作。通過(guò)調(diào)用BOOL Create( CWnd* pParentWnd, DWORD dwStyle = WS_CHILD | WS_VISIBLE | CBRS_BOTTOM, UINT nID = AFX_IDW_STATUS_BAR )。創(chuàng)建一個(gè)窗口,dwStyle中可以使用以下一些狀態(tài)條控件的專(zhuān)用風(fēng)格: CBRS_TOP 狀態(tài)條在父窗口的頂部 TCBRS_BOTTOM 狀態(tài)條在父窗口的底部 創(chuàng)建一個(gè)狀態(tài)條的步驟如下:先使用Create創(chuàng)建窗口,然后調(diào)用BOOL SetIndicators( const UINT* lpIDArray, int nIDCount )。設(shè)置狀態(tài)條上各部分的ID,具體代碼如下: UINT uID[2]={ID_SEPARATOR,ID_INDICATOR_CAPS}。(pParentWnd)。(uID,2)。通過(guò)CString GetPaneText( int nIndex )/BOOL SetPaneText( int nIndex, LPCTSTR lpszNewText, BOOL bUpdate = TRUE )可以得到/設(shè)置狀態(tài)條上顯示的文字。 Tip:在創(chuàng)建狀態(tài)條時(shí)最好將狀態(tài)條中所有的部分ID(除MFC自定義的幾個(gè)用于狀態(tài)條的ID外)都設(shè)置為ID_SEPARATOR,在生成后調(diào)用void SetPaneInfo( int nIndex, UINT nID, UINT nStyle, int cxWidth )。改變其風(fēng)格,ID和寬度。 AppWizard在生成代碼時(shí)也會(huì)同時(shí)生成狀態(tài)條的代碼。所以一般是不需要直接創(chuàng)建狀態(tài)條對(duì)象。此外狀態(tài)條上會(huì)自動(dòng)顯示菜單上的命令提示(必須先在資源中定義),所以也不需要人為設(shè)置顯示文字。 狀態(tài)條支持ON_UPDATE_COMMAND_UI的相關(guān)操作,如SetText,Enable。 List Box控件ListBox窗口用來(lái)列出一系列的文本,每條文本占一行。創(chuàng)建一個(gè)列表窗口可以使用成員函數(shù): BOOL CListBox::Create( LPCTSTR lpszText, DWORD dwStyle, const RECTamp。 rect, CWnd* pParentWnd, UINT nID = 0xffff )。 其中dwStyle將指明該窗口的風(fēng)格,除了子窗口常用的風(fēng)格WS_CHILD,WS_VISIBLE外,你可以針對(duì)列表控件指明專(zhuān)門(mén)的風(fēng)格。 LBS_MULTIPLESEL 指明列表框可以同時(shí)選擇多行 LBS_EXTENDEDSEL 可以通過(guò)按下Shift/Ctrl鍵選擇多行 LBS_SORT 所有的行按照字母順序進(jìn)行排序 在列表框生成后需要向其中加入或是刪除行,可以利用: int AddString( LPCTSTR lpszItem )添加行, int DeleteString( UINT nIndex )刪除指定行, int InsertString( int nIndex, LPCTSTR lpszItem )將行插入到指定位置。 void ResetContent( )可以刪除列表框中所有行。通過(guò)調(diào)用int GetCount( )得到當(dāng)前列表框中行的數(shù)量。 如果需要得到/設(shè)置當(dāng)前被選中的行,可以調(diào)用int GetCurSel( )/int SetCurSel(int iIndex)。如果你指明了選擇多行的風(fēng)格,你就需要先調(diào)用int GetSelCount( )得到被選中的行的數(shù)量,然后int GetSelItems( int nMaxItems, LPINT rgIndex )得到所有選中的行,參數(shù)rgIndex為存放被選中行的數(shù)組。通過(guò)調(diào)用int GetLBText( int nIndex, LPTSTR lpszText )得到列表框內(nèi)指定行的字符串。此外通過(guò)調(diào)用int FindString( int nStartAfter, LPCTSTR lpszItem )可以在當(dāng)前所有行中查找指定的字符傳的位置,nStartAfter指明從那一行開(kāi)始進(jìn)行查找。 int SelectString( int nStartAfter, LPCTSTR lpszItem )可以選中包含指定字符串的行。在MFC ,該類(lèi)是由CListBox派生并擁有CListBox的所有功能,不同的是可以在每行前加上一個(gè)檢查框。必須注意的是在創(chuàng)建時(shí)必須指明LBS_OWNERDRAWFIXED或LBS_OWNERDRAWVARIABLE風(fēng)格。通過(guò)void SetCheckStyle( UINT nStyle )/UINT GetCheckStyle( )可以設(shè)置/得到檢查框的風(fēng)格, Button中介紹。通過(guò)void SetCheck( int nIndex, int nCheck )/int GetCheck( int nIndex )可以設(shè)置和得到某行的檢查狀態(tài), Button中介紹。最后介紹一下列表框幾種常用的消息映射宏: ON_LBN_DBLCLK 鼠標(biāo)雙擊 ON_EN_ERRSPACE 輸入框無(wú)法分配內(nèi)存時(shí)產(chǎn)生 ON_EN_KILLFOCUS / ON_EN_SETFOCUS 在輸入框失去/得到輸入焦點(diǎn)時(shí)產(chǎn)生 ON_LBN_SELCHANGE 選擇的行發(fā)生改變 使用以上幾種消息映射的方法為定義原型如:afx_msg void memberFxn( )。的函數(shù),并且定義形式如ON_Notification( id, memberFxn )的消息映射。如果在對(duì)話(huà)框中使用列表框,Class Wizard會(huì)自動(dòng)列出相關(guān)的消息,并能自動(dòng)產(chǎn)生消息映射代碼。 List Ctrl控件列表控件可以看作是功能增強(qiáng)的ListBox,它提供了四種風(fēng)格,而且可以同時(shí)顯示一列的多中屬性值。MFC中使用CListCtrl類(lèi)來(lái)封裝列表控件的各種操作。通過(guò)調(diào)用BOOL Create( DWORD dwStyle, const RECTamp。 rect, CWnd* pParentWnd, UINT nID )。創(chuàng)建一個(gè)窗口,dwStyle中可以使用以下一些列表控件的專(zhuān)用風(fēng)格: LVS_ICON LVS_SMALLICON LVS_LIST LVS_REPORT 這四種風(fēng)格決定控件的外觀,同時(shí)只可以選擇其中一種,分別對(duì)應(yīng):大圖標(biāo)顯示,小圖標(biāo)顯示,列表顯示,詳細(xì)報(bào)表顯示 LVS_EDITLABELS 結(jié)點(diǎn)的顯示字符可以被編輯,對(duì)于報(bào)表風(fēng)格來(lái)講可編輯的只為第一列。 LVS_SHOWSELALWAYS 在失去焦點(diǎn)時(shí)也顯示當(dāng)前選中的結(jié)點(diǎn) LVS_SINGLESEL 同時(shí)只能選中列表中一項(xiàng) 首先你需要設(shè)置列表控件所使用的ImageList,如果你使用大圖標(biāo)顯示風(fēng)格,你就需要以如下形式調(diào)用: CImageList* SetImageList( CImageList* pImageList, LVSIL_NORMAL)。 如果使用其它三種風(fēng)格顯示而不想顯示圖標(biāo)你可以不進(jìn)行任何設(shè)置,否則需要以如下形式調(diào)用: CImageList* SetImageList( CImageList* pImageList, LVSIL_SMALL)。 通過(guò)調(diào)用int InsertItem( int nItem, LPCTSTR lpszItem )。可以在列表控件中nItem指明位置插入一項(xiàng),lpszItem為顯示字符。除LVS_REPORT風(fēng)格外其他三種風(fēng)格都只需要直接調(diào)用InsertItem就可以了,但如果使用報(bào)表風(fēng)格就必須先設(shè)置列表控件中的列信息。通過(guò)調(diào)用int InsertColumn( int nCol, LPCTSTR lpszColumnHeading, int nFormat , int nWidth, int nSubItem)??梢圆迦肓小Col為列的位置,從零開(kāi)始,lpszColumnHeading為顯示的列名,nFormat為顯示對(duì)齊方式,nWidth為顯示寬度,nSubItem為分配給該列的列索引。 在有多列的列表控件中就需要為每一項(xiàng)指明其在每一列中的顯示字符,通過(guò)調(diào)用 BOOL SetItemText( int nItem, int nSubItem, LPTSTR lpszText )??梢栽O(shè)置每列的顯示字符。nItem為設(shè)置的項(xiàng)的位置,nSubItem為列位置,lpszText為顯示字符。下面的代碼演示了如何設(shè)置多列并插入數(shù)據(jù): (amp。m_listSmall,LVSIL_SMALL)。//設(shè)置ImageList (0,Col 1,LVCFMT_LEFT,300,0)。//設(shè)置列 (1,Col 2,LVCFMT_LEFT,300,1)。 (2,Col 3,LVCFMT_LEFT,300,2)。 (0,Item 1_1)。//插入行 (0,1,Item 1_2)。//設(shè)置該行的不同列的顯示字符 (0,2,Item 1_3)。 此外CListCtrl還提供了一些函數(shù)用于得到/修改控件的狀態(tài)。 COLORREF GetTextColor( )/BOOL SetTextColor( COLORREF cr )。用于得到/設(shè)置顯示的字符顏色。 COLORREF GetTextBkColor( )/BOOL SetTextBkColor( COLORREF cr )。用于得到/設(shè)置顯示的背景顏色。 void SetItemCount( int iCount )。用于得到添加進(jìn)列表中項(xiàng)的數(shù)量。 BOOL DeleteItem(int nItem)。用于刪除某一項(xiàng),BOOL DeleteAllItems( )。將刪除所有項(xiàng)。 BOOL SetBkImage(HBITMAP hbm, BOOL fTile , int xOffsetPercent, int yOffsetPercent)。用于設(shè)置背景位圖。 CString GetItemText( int nItem, int nSubItem )。用于得到某項(xiàng)的顯示字符。 列表控件的消息映射同樣使用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),在具體使用時(shí)需要轉(zhuǎn)換成其他類(lèi)型的結(jié)構(gòu)。對(duì)于列表控件可能取值和對(duì)應(yīng)的數(shù)據(jù)結(jié)構(gòu)為: LVN_BEGINLABELEDIT 在開(kāi)始某項(xiàng)編輯字符時(shí)發(fā)送,所用結(jié)構(gòu):NMLVDISPINFO LVN_ENDLABELEDIT 在結(jié)束某項(xiàng)編輯字符時(shí)發(fā)送,所用結(jié)構(gòu):NMLVDISPINFO LVN_GETDISPINFO 在需要得到某項(xiàng)信息時(shí)發(fā)送,(如得到某項(xiàng)的顯示字符)所用結(jié)構(gòu):NMLVDISPINFO 關(guān)于ON_NOTIFY有很多內(nèi)容,將在以后的內(nèi)容中進(jìn)行詳細(xì)講解。 關(guān)于動(dòng)態(tài)提供結(jié)點(diǎn)所顯示的字符:首先你在項(xiàng)時(shí)需要指明lpszItem參數(shù)為:LPSTR_TEXTCALLBACK。在控件顯示該結(jié)點(diǎn)時(shí)會(huì)通過(guò)發(fā)送TVN_GETDISPINFO來(lái)取得所需要的字符,在處理該消息時(shí)先將參數(shù)pNMHDR轉(zhuǎn)換為L(zhǎng)PNMLVDISPINFO。通過(guò)item中的iItem,iSubItem可以知道當(dāng)前顯示的為那一項(xiàng)。下面的代碼演示了這種方法: char szOut[8][3]={,}。 //添加結(jié)點(diǎn) (LPSTR_TEXTCALLBACK,...) (LPSTR_TEXTCALLBACK,...) //處理消息 void CParentWnd::OnGetDispInfoList(NMHDR* pNMHDR, LRESULT* pResult) { LV_DISPINFO* pLVDI = (LV_DISPINFO*)pNMHDR。 pLVDI=szOut[pTVDI]。//通過(guò)iItem得到需要 顯示的字符在數(shù)組中的位置 *pResult = 0。 } 關(guān)于編輯某項(xiàng)的顯示字符:(在報(bào)表風(fēng)格中只對(duì)第一列有效)首先需要設(shè)置列表控件的LVS_EDITLABELS風(fēng)格,在開(kāi)始編輯時(shí)該控件將會(huì)發(fā)送LVN_BEGINLABELEDIT,你可以通過(guò)在處理函數(shù)中返回TRUE來(lái)取消接下來(lái)的編輯,在編輯完成后會(huì)發(fā)送LVN_ENDLABELEDIT,在處理該消息時(shí)需要將參數(shù)pNMHDR轉(zhuǎn)換為L(zhǎng)PNMLVDISPINFO,并重置顯示字符。如果編輯在中途中取消該變量為NULL。下面的代碼說(shuō)明如何處理這些消息: //處理消息 LVN_BEGINLABELEDIT void CParentWnd::OnBeginEditList(NMHDR* pNMHDR, LRESULT* pResult) { LV_DISPINFO* pLVDI = (LV_DISPINFO*)pNMHDR。 if(pLVDI==0)。//判斷是否取消該操作 *pResult = 1。 else *pResult = 0。 } //處理消息 LVN_BEGINLABELEDIT void CParentWnd::OnBeginEditList(NMHDR* pNMHDR,
點(diǎn)擊復(fù)制文檔內(nèi)容
數(shù)學(xué)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1