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

正文內(nèi)容

visualc網(wǎng)絡(luò)編程案例實戰(zhàn)之ftp客戶端實現(xiàn)之二-在線瀏覽

2025-02-28 04:12本頁面
  

【正文】 int col, ? int cxIdeal, ? int cxMin ? )。 ? 在函數(shù) OnCreateClient()中,我們將 3個視圖CMsgShow、 CFileTree和 CFtpClientView指定到相應(yīng)的分割窗格中。至此客戶區(qū)分割的操作代碼填加完畢。 ? 我們需要用類向?qū)砑右粋€新類 CFileTree,基于 CTreeView,如圖 。 圖 為類 CFileTree添加消息響應(yīng) ? 為函數(shù) OnBegindrag()添加代碼,如下: ? 函數(shù) OnBegindrag()中的變量是類 CFileTree的公有成員變量,定義如下: ? 成員變量在類 CFreeTree的構(gòu)造函數(shù)初始化如下: ? 類 CTreeCtrl的成員函數(shù) GetTreeCtrl()返回樹視圖控件的引用。 ? UINT action。 ? TV_ITEM itemNew。 ? } NM_TREEVIEW。 ? 我們要從這個結(jié)構(gòu)中獲取兩個信息: ptDrag。結(jié)構(gòu) TV_ITEM的字段 hItem放的是這個結(jié)構(gòu)指向樹視圖項的句柄HTREEITEM,被保存在了 m_hItemDragS變量中。 ? 函數(shù) BeginDrag()的原型如下: ? BOOL BeginDrag( ? int nImage, ? CPoint ptHotSpot ? )。 ? 函數(shù) DragEnter()的原型如下: ? static BOOL PASCAL DragEnter( ? CWnd* pWndLock, ? CPoint point ? )。若參數(shù)賦值為 NULL,這個函數(shù)拖動圖像的坐標(biāo)是相對于桌面窗口的,即屏幕坐標(biāo)的左上角。最后我們同樣調(diào)用類 CWnd的成員函數(shù) SetCapture(),以后不管鼠標(biāo)的位置在哪里,所有的鼠標(biāo)后續(xù)輸入都會被送到當(dāng)前的窗口處理。 ? 利用類向?qū)轭?CFileTree添加下一個事件:鼠標(biāo)移動。 圖 添加鼠標(biāo)移動事件 ? 為函數(shù) OnMouseMove()添加代碼,如下: ? 函數(shù) OnMouseMove()首先調(diào)用 AfxGetMainWnd(),獲取指向當(dāng)前程序主框架 CMainFrame的指針,保存在變量 mFrm中,通過此變量調(diào)用其成員變量 m_splitter2的成員函數(shù),既類 CSplitterWnd的成員函數(shù) GetPane(),得到指定行列窗格的指針。 ? 我們要在類 CFileTree中添加一個自定義的成員函數(shù) GetCtrlRect(),如圖 。然后將坐標(biāo)轉(zhuǎn)換為相對屏幕的坐標(biāo)值。實例化兩個類 CRgn的對象 listRgn和 treeRgn,調(diào)用類 CRgn的成員函數(shù)CreateRectRgn()創(chuàng)建兩個矩形區(qū)域,分別覆蓋了樹形結(jié)構(gòu)視圖、列表結(jié)構(gòu)視圖。 ? 參數(shù)含義如下: ? x y1:指定矩形區(qū)域左上角點的坐標(biāo)位置。 ? 在指定的區(qū)域范圍內(nèi),并且當(dāng)前正處在拖動的狀態(tài)下時,就該調(diào)用拖動操作的第 4個函數(shù)了,它是類CImageList的成員函數(shù) DragMove(),原型如下: ? static BOOL PASCAL DragMove( ? CPoint pt ? )。這個函數(shù)移動圖像到指定的新的坐標(biāo)點,也就是圖像會隨著鼠標(biāo)移動效果的展現(xiàn)。我們通過類 CTreeCtrl的成員函數(shù) HitTest()判斷:鼠標(biāo)點相對樹視圖控件的位置,若是在控件內(nèi)部的話,會返回指定位置樹視圖項的句柄,當(dāng)指定位置不在在任何一個樹視圖項上,則返回NULL。通過調(diào)用類CTreeCtrl的成員函數(shù) SelectDropTarget(),重繪樹視圖相應(yīng)項,以一種表明樹視圖項被選中的樣式,參數(shù)是樹視圖項的句柄就行。 ? 利用類向?qū)轭?CFileTree添加最后一個事件:鼠標(biāo)左鍵彈起。 圖 添加鼠標(biāo)左鍵彈起事件 ? 為函數(shù) OnLButtonUp()添加代碼,如下: ? 函數(shù) OnLButtonUp()會調(diào)用 AfxGetMainWnd()獲取本程序主框架的指針,并保存在變量 mFrm中,用 mFrm通過其數(shù)據(jù)成員 m_splitter2獲取列表視圖窗格的指針。它們是類 CImageList的成員函數(shù):DragLeave()用來解鎖參數(shù)指定的窗口、隱藏圖像、允許窗口更新; EndDrag()用來結(jié)束拖動操作。 ? static void PASCAL EndDrag( )。然后就是我們應(yīng)該很熟悉的操作了,獲取列表視圖矩形大小、創(chuàng)建覆蓋列表視圖的區(qū)域、判斷鼠標(biāo)點移動到了創(chuàng)建的區(qū)域范圍之內(nèi)時,添加任意的操作。 ? 首先需要在類 CFtpClientView的實現(xiàn)文件頭部添加文件包含指令如下: ? include ? include ? 在類 CFtpClientView的頭文件添加類的聲明,代碼如下: ? class CFtpClientDoc。 圖 為類 CFileTree添加消息響應(yīng) ? 為函數(shù) OnBegindrag()添加代碼,如下: ? 函數(shù) OnBegindrag()中的變量是類 CFtpClientView的公有成員變量,定義如下: ? 成員變量在類 CFtpClientView的構(gòu)造函數(shù)初始化如下: ? 函數(shù) OnBegindrag()會調(diào)用類 CListCtrl的 2個成員函數(shù): GetNextItem()和CreateDragImage()。 ? 參數(shù)含義如下: ? nItem:開始檢索時起始列表項的索引,若為 1將會匹配滿足 nFlags所指條件的第一個列表項,所指定的列表項不會被檢索。 ? 參數(shù)含義如下: ? nItem:要創(chuàng)建拖動圖像的列表項的索引。 ? 利用類向?qū)轭?CFtpClientView添加下一個事件:鼠標(biāo)移動。 圖 添加鼠標(biāo)移動事件 ? 為函數(shù) OnMouseMove()添加代碼,如下: ? 函數(shù) OnMouseMove()的實現(xiàn)過程同樣包括:獲取樹形視圖、列表視圖窗口矩形大小,創(chuàng)建覆蓋樹形視圖、列表視圖窗口的區(qū)域,檢測鼠標(biāo)處于拖動圖像狀態(tài),而且在樹形視圖或列表視圖的區(qū)域范圍內(nèi),調(diào)用類 CImageList的成員函數(shù) DragMove()拖動圖像。如圖 。 實現(xiàn) FTP客戶端 ? 這個實例是通過 WinI API來實現(xiàn) FTP客戶端的,因此無需考慮底層的通信協(xié)議和數(shù)據(jù)傳輸工作,所以我們把近一半的精力用在了華麗的程序界面上。主要用到兩個類: CInterSession和 CFtpConnection。它的構(gòu)造函數(shù)原型如下: ? CInterSession( ? LPCTSTR pstrAgent = NULL, ? DWORD_PTR dwContext = 1, ? DWORD dwAccessType = PRE_CONFIG_INTERNET_ACCESS, ? LPCTSTR pstrProxyName = NULL, ? LPCTSTR pstrProxyBypass = NULL, ? DWORD dwFlags = 0 ? )。 ? 當(dāng)我們要在服務(wù)器上執(zhí)行指定的服務(wù),如 FTP服務(wù),必須要先建立連接,用到的成員函數(shù)是 GetFtpConnection()。 ? 參數(shù)含義如下: ? pstrServer:包含 FTP服務(wù)器 IP地址的字符串。 ? 返回一個指向類 CFtpConnection的指針。我們主要用到了此類的 2個成員函數(shù): PutFile()用來上傳文件, GetFile(
點擊復(fù)制文檔內(nèi)容
范文總結(jié)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1