![]() | ![]() |
借助API函數(shù)CallWindowProc,DragAcceptFiles,DragQueryFile,DragFinish同樣可以實(shí)現(xiàn)文件從資源管理器EXPLORE到應(yīng)用程序的拖放,另一種方法是采用OLE拖放,可以參照趣味編程欄目的相關(guān)內(nèi)容。下面我們一起來(lái)看看程序編寫(xiě)的過(guò)程。 為了學(xué)習(xí)方便,提供的源碼已經(jīng)作了詳細(xì)的中文注釋?zhuān)纯丛创a框中的代碼: 對(duì)于每個(gè)需要引用的API函數(shù),我們需要先在程序中說(shuō)明,如果只在某一窗體內(nèi)聲明并使用它,則把它聲明為Private,而如果在模塊中聲明,且需要在整個(gè)工程內(nèi)使用它,則需要把它聲明為Public。 SetWindowLong函數(shù)的作用是在窗口結(jié)構(gòu)中為指定的窗口設(shè)置屬性,利用它我們來(lái)改變窗口的屬性參數(shù),其中各個(gè)參數(shù)的意義如下表所示:
在默認(rèn)狀態(tài)下WINDOWS操作系統(tǒng)會(huì)指定一個(gè)窗口函數(shù)來(lái)接受和處理WINDOWS消息,而通過(guò)使用SetWindowLong函數(shù)改變窗口函數(shù)的地址使它指向我們自己寫(xiě)的一個(gè)函數(shù)WindowProc,這樣WINDOWS消息就會(huì)轉(zhuǎn)由WindowProc函數(shù)接收和處理。于是我們就能判斷文件拖放的消息并進(jìn)行處理。改變窗口屬性的語(yǔ)句如下: DragAcceptFiles、DragQueryFile、DragFinish三個(gè)函數(shù)的作用分別是:把某個(gè)窗口設(shè)置為接收拖放的容器、返回拖放的文件的數(shù)量和信息、終止拖放。 |
聯(lián)系客服