<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # 11.1 數據對象 wxDataObject類是剪貼板操作和拖放操作的核心,這個類的實例代表了拖放操作中鼠標拖拽的事物,以及剪貼板操作中拷貝和粘貼的事物. wxDataObject是一塊聰明的數據,因為它知道哪種格式它可以支持(通過GetFormatCount和GetAllFormats),也知道怎樣來支持它們(通過GetdataHere).如果實現了對應的SetData函數,它也可以從應用程序的外部接受不同格式的數據.我們將在本章的后邊對此進行介紹. 標準的數據格式,比如wxDF_TEXT是用整數來區分的,而定制的數據格式則是通過字符串來區分的.wxDataFormat類支持使用這兩種參數的構造函數.下表列出了標準的數據格式. | wxDF_INVALID | 無效格式,用于缺省的wxDataFormat的構造函數. | |:--- |:--- | | wxDF_TEXT | 文本數據格式,對應的數據類型為wxTexTDataObject. | | wxDF_BITMAP | 圖片數據格式,對應的數據類型為wxBitmapDataObject. | | wxDF_METAFILE | 元文件數據格式,對應的數據類型為wxMetafileDataObject(僅支持Windows) | | wxDF_FILENAME | 文件名列表數據格式,對應的數據類型為wxFileDataObject. | 你也可以創建定制的數據格式,在這種情況下,你需要給wxDataFormat構造函數傳遞一個定制的字符串,來標識你的定制的數據類型,這個數據類型將在首次使用的時候被登記. 剪貼板操作和拖放操作都需要處理數據源(數據提供者)和數據目標(數據接收者).它們可以位于同一個應用程序內,甚至是位于同一個窗口內,比如,你在同一個窗口內把一段文本從一個位置拖到另一個位置,我們來分別描述一下這兩個角色. 數據源的職責 數據源負責創建要包含要傳輸的數據的數據對象,在創建數據對象以后,數據源還負責通過SetData函數將其傳遞給剪貼板,或者在拖放操作開始時,通過DoDragDrop函數將其傳遞給一個wxDropSource對象. 在這種情況下,剪貼板操作和拖放操作的最大的不同在于剪貼板傳輸的數據必須使用new函數,在堆上創建,而且只能被剪貼板在其不被需要的時候釋放,事實上,我們根本不知道它是在什么時候被釋放的,我們甚至連原始的數據是什么時候被放到剪貼板上去的也不知道.而另一方面,用于拖放操作的數據對象只需要在DoDragDrop執行期間存在,執行完以后就可以被安全地釋放了,因此,這種數據對象,即可以在堆上創建,也可以在棧上創建(意思就是一個局部變量). 另一個細微的差別在于:對于剪貼板操作應用程序通常很清楚它正在進行的操作的整個過程.當進行了剪切操作的時候,數據被首先拷貝到剪切板,然后從當前操作的對象中移除.這通常是由于用戶對菜單項的選擇來觸發的.但是對于拖放操作來說,應用程序只有在DoDragDrop函數執行以后,才能了解這些信息. 數據目標的職責 要從剪貼板接收數據(意味著一個粘貼操作),你應該首先創建一個支持你想要獲取的數據格式的wxDataObject的派生類,以便將其傳遞給wxClipboard::GetData函數.如果這個函數返回失敗,表明剪貼板上沒有你想要的類型的數據.如果返回成功,則表明剪貼板上的數據已經被成功地傳輸到你創建的wxDataObject的派生類中. 對于拖放操作,當一個數據對象被放置的時候,wxDropTarget::OnData虛函數將會被調用.如果數據類型合適,應用程序可以調用wxDropTarget::OnData函數來獲取相應的數據.
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看