欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

自繪控件實現(xiàn)方法及裝置的制造方法

文檔序號:10665680閱讀:268來源:國知局
自繪控件實現(xiàn)方法及裝置的制造方法
【專利摘要】本發(fā)明公開了一種自繪控件實現(xiàn)方法,包括步驟:接收顯示內(nèi)容控制操作;在所述顯示內(nèi)容的內(nèi)容控件為Windows窗口內(nèi)容控件時,通過所述內(nèi)容控件的父窗口將所述控制操作轉(zhuǎn)發(fā)至滾動條控件,以使所述滾動條控件根據(jù)所述控制操作完成顯示內(nèi)容的控制響應(yīng)操作。本發(fā)明還公開一種自繪控件實現(xiàn)裝置。本發(fā)明實現(xiàn)在控件內(nèi)對滾動條的完全自繪操作,提高了自繪控件的定制性和適用性。
【專利說明】
自繪控件實現(xiàn)方法及裝置
技術(shù)領(lǐng)域
[0001 ]本發(fā)明涉及到軟件開發(fā)技術(shù)領(lǐng)域,特別涉及到自繪控件實現(xiàn)方法及裝置?!颈尘凹夹g(shù)】
[0002]在Windows窗口中,list(列表)、tree(樹狀)等控件都可以存放并顯示大量數(shù)據(jù),當待顯示的數(shù)據(jù)量較大時,受控件界面大小的限制,在顯示界面中無法一次性顯示所有的數(shù)據(jù)時,得分成多頁來顯示,并通過滾動來實現(xiàn)移動頁面操作。目前內(nèi)容控件的滾動條的一般有:使用系統(tǒng)默認的滾動條樣式。創(chuàng)建采用一套完全自繪的控件庫,內(nèi)容控件和滾動條都采用自繪。
[0003]然而,由于Windows對自繪控件的封裝性的限制,在使用Widnows窗口內(nèi)容控件時,滾動條位于內(nèi)容控件內(nèi),在控件內(nèi)只能對滾動條進行有限的自繪,也不能對滾動條的鼠標、鍵盤消息進行完整的托管處理,因此,Windows自繪控件的滾動條的定制性和適用性差。
【發(fā)明內(nèi)容】

[0004]本發(fā)明實施例提供一種自繪控件實現(xiàn)方法及裝置,旨在解決現(xiàn)有的在控件內(nèi)只能對滾動條進行有限的自繪,也不能對滾動條的鼠標、鍵盤消息進行完整的托管處理,因此, Windows自繪控件的滾動條的定制性和適用性差的問題。
[0005]為實現(xiàn)上述目的,本發(fā)明實施例提出一種自繪控件實現(xiàn)方法,包括步驟:
[0006]接收顯示內(nèi)容控制操作;
[0007]在所述顯示內(nèi)容的內(nèi)容控件為Windows窗口內(nèi)容控件時,通過所述內(nèi)容控件的父窗口將所述控制操作轉(zhuǎn)發(fā)至滾動條控件,以使所述滾動條控件根據(jù)所述控制操作完成顯示內(nèi)容的控制響應(yīng)操作。
[0008]為了實現(xiàn)上述目的,本發(fā)明實施例還進一步提出一種自繪控件實現(xiàn)裝置,包括:
[0009]接發(fā)模塊,用于接收顯示內(nèi)容控制操作;
[0010]處理模塊,用于在所述顯示內(nèi)容的內(nèi)容控件為Windows窗口內(nèi)容控件時,通過所述內(nèi)容控件的父窗口將所述控制操作轉(zhuǎn)發(fā)至滾動條控件,以使所述滾動條控件根據(jù)所述控制操作完成顯示內(nèi)容的控制響應(yīng)操作。
[0011]本發(fā)明在使用Windows窗口內(nèi)容控件時,通過所述內(nèi)容控件的父窗口將所述控制操作發(fā)送至滾動條控件,以完成顯示內(nèi)容的控制操作。有效避免在使用的Windows窗口內(nèi)容控件時,在控件內(nèi)只能對滾動條進行有限的自繪,也不能對滾動條的鼠標、鍵盤消息進行完整的托管處理,因此,Windows自繪控件的滾動條的定制性和適用性差。使得在使用的 Windows窗口內(nèi)容控件時,實現(xiàn)自繪滾動條對顯示內(nèi)容的控制,提高了自繪控件的適用性?!靖綀D說明】
[0012]圖1為本發(fā)明實施例自繪控件實現(xiàn)裝置所涉及的硬件架構(gòu)示意圖;
[0013]圖2為本發(fā)明自繪控件實現(xiàn)方法的第一實施例的流程示意圖;
[0014]圖3為本發(fā)明設(shè)置內(nèi)容控件的參數(shù)一實施例的流程示意圖;
[0015]圖4為本發(fā)明設(shè)置滾動條控件的參數(shù)一實施例的流程示意圖;
[0016]圖5為本發(fā)明自繪控件實現(xiàn)方法的第二實施例的流程示意圖;
[0017]圖6為本發(fā)明自繪控件實現(xiàn)方法的第一實施例的流程示意圖;
[0018]圖7為本發(fā)明滾動條的Pos發(fā)生變化的處理一實施例的流程示意圖;
[0019]圖8為本發(fā)明MouseWheel消息的處理一實施例的流程示意圖;
[0020]圖9為本發(fā)明MouseWheel消息的處理另一實施例的流程示意圖;[0021 ]圖10為本發(fā)明自繪控件實現(xiàn)裝置的較佳實施例的功能模塊示意圖。
[0022]本發(fā)明目的的實現(xiàn)、功能特點及優(yōu)點將結(jié)合實施例,參照附圖做進一步說明。【具體實施方式】
[0023]應(yīng)當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0024]本發(fā)明實施例的主要解決方案是:接收顯示內(nèi)容控制操作;在所述顯示內(nèi)容的內(nèi)容控件為Windows窗口內(nèi)容控件時,完全自繪的滾動條位于內(nèi)容控件的父窗口內(nèi),并通過所述內(nèi)容控件的父窗口將所述控制操作轉(zhuǎn)發(fā)至滾動條控件,以使所述滾動條控件根據(jù)所述控制操作完成顯示內(nèi)容的控制響應(yīng)操作。在使用Windows窗口內(nèi)容控件時,通過所述內(nèi)容控件的父窗口將所述控制操作發(fā)送至滾動條控件,以完成顯示內(nèi)容的控制操作。有效避免在使用的Windows窗口內(nèi)容控件時,在控件內(nèi)只能對滾動條進行有限的自繪,也不能對滾動條的鼠標、鍵盤消息進行完整的托管處理,因此,Windows自繪控件的滾動條的定制性和適用性差。使得在使用的Windows窗口內(nèi)容控件時,實現(xiàn)自繪滾動條對顯示內(nèi)容的控制,提高了自繪控件的適用性。
[0025]由于現(xiàn)有Windows窗口內(nèi)容控件,無法實現(xiàn)滾動條的完全自繪,進而導(dǎo)致自繪控件的個性化定制的適用性差。
[0026]本發(fā)明實施例架構(gòu)一自繪控件實現(xiàn)裝置,該自繪控件實現(xiàn)裝置在使用Windows窗口內(nèi)容控件時,通過所述內(nèi)容控件的父窗口將所述控制操作發(fā)送至滾動條控件,以完成顯示內(nèi)容的控制操作。有效避免在使用的Windows窗口內(nèi)容控件時,在控件內(nèi)只能對滾動條進行有限的自繪,也不能對滾動條的鼠標、鍵盤消息進行完整的托管處理,因此,Windows自繪控件的滾動條的定制性和適用性差。使得在使用Windows窗口內(nèi)容控件時,實現(xiàn)在控件內(nèi)對滾動條的完全自繪操作,提高了自繪控件的定制性和適用性。
[0027]其中,本實施例自繪控件實現(xiàn)裝置可以承載于PC端,也可以承載于手機、平板電腦等可以使用頁面瀏覽應(yīng)用的電子終端。該自繪控件實現(xiàn)裝置所涉及的硬件架構(gòu)可以如圖 1所示。
[0028]圖1示出了本發(fā)明實施例自繪控件實現(xiàn)裝置所涉及的硬件架構(gòu)。如圖1所示,所述自繪控件實現(xiàn)裝置所涉及的硬件包括:處理器301,例如CPU,網(wǎng)絡(luò)接口 304,用戶接口 303, 存儲器305,通信總線302。其中,通信總線302用于實現(xiàn)該信息推送平臺中各組成部件之間的連接通信。用戶接口 303可以包括顯示屏(Display)、鍵盤(Keyboard)、鼠標等組件, 用于接收用戶輸入的信息,并將接收的信息發(fā)送至處理器305進行處理。顯示屏可以為IXD 顯示屏、LED顯示屏,也可以為觸摸屏,用于顯示自繪控件實現(xiàn)裝置需要顯示的數(shù)據(jù),例如顯示自繪控件、自繪控件操作等操作界面。可選用戶接口 303還可以包括標準的有線接口、無線接口。網(wǎng)絡(luò)接口 304可選的可以包括標準的有線接口、無線接口(如W1-FI接口)。存儲器305可以是高速RAM存儲器,也可以是穩(wěn)定的存儲器(non-volatile memory),例如磁盤存儲器。存儲器305可選的還可以是獨立于前述處理器301的存儲裝置。如圖1所示,作為一種計算機存儲介質(zhì)的存儲器305中可以包括操作系統(tǒng)、網(wǎng)絡(luò)通信模塊、用戶接口模塊以及自繪控件實現(xiàn)程序。
[0029]在圖1所示的自繪控件實現(xiàn)裝置所涉及的硬件中,網(wǎng)絡(luò)接口 304主要用于連接應(yīng)用平臺,與應(yīng)用平臺進行數(shù)據(jù)通信;用戶接口 303主要用于連接客戶端,與客戶端進行數(shù)據(jù)通信,接收客戶端輸入的信息和指令;而處理器301可以用于調(diào)用存儲器305中存儲的自繪控件實現(xiàn)程序,并執(zhí)行以下操作:
[0030]接收顯示內(nèi)容控制操作;
[0031]在所述顯示內(nèi)容的內(nèi)容控件為Windows窗口內(nèi)容控件時,通過所述內(nèi)容控件的父窗口將所述控制操作轉(zhuǎn)發(fā)至滾動條控件,以使所述滾動條控件根據(jù)所述控制操作完成顯示內(nèi)容的控制響應(yīng)操作。
[0032]進一步地,在一個實施例中,處理器301調(diào)用存儲器305中存儲的自繪控件實現(xiàn)程序可以執(zhí)行以下操作:
[0033]接收內(nèi)容控件的參數(shù)設(shè)置指令;
[0034]根據(jù)所述內(nèi)容控件的參數(shù)設(shè)置指令設(shè)置顯示內(nèi)容的參數(shù)。
[0035]進一步地,在一個實施例中,處理器301調(diào)用存儲器305中存儲的自繪控件實現(xiàn)程序可以執(zhí)行以下操作:
[0036]通過調(diào)用函數(shù)將為內(nèi)容控件設(shè)置的參數(shù)發(fā)送給滾動條控件,以使?jié)L動條控件設(shè)置與所述內(nèi)容控件相應(yīng)的參數(shù)。
[0037]進一步地,在一個實施例中,處理器301調(diào)用存儲器305中存儲的自繪控件實現(xiàn)程序可以執(zhí)行以下操作:
[0038]在偵測到顯示內(nèi)容的顯示參數(shù)發(fā)生變化時,確定與所述發(fā)生變化的相應(yīng)參數(shù)對應(yīng)的滾動條控件的函數(shù);
[0039]調(diào)用所確定的函數(shù)對滾動條控件的參數(shù)進行更新。
[0040]進一步地,在一個實施例中,處理器301調(diào)用存儲器305中存儲的自繪控件實現(xiàn)程序可以執(zhí)行以下操作:
[0041]接收滾動條控件OnPosChanged回調(diào)函數(shù)的注冊指令,并根據(jù)所述注冊指令注冊 OnPosChanged 回調(diào)函數(shù);
[0042]在滾動條控件的Pos參數(shù)發(fā)生變化時,觸發(fā)OnPosChanged事件,通過滾動條控件的GetPos函數(shù)獲取滾動條控件的Pos參數(shù),通過所獲取到滾動條控件的Pos參數(shù)更新內(nèi)容控件的Pos參數(shù)。
[0043]本實施例根據(jù)上述方案,在使用Windows窗口內(nèi)容控件時,完全自繪的滾動條位于內(nèi)容控件的父窗口內(nèi),并通過所述內(nèi)容控件的父窗口將所述控制操作發(fā)送至滾動條控件,以完成顯示內(nèi)容的控制操作。有效避免在使用的Windows窗口內(nèi)容控件時,在控件內(nèi)只能對滾動條進行有限的自繪,也不能對滾動條的鼠標、鍵盤消息進行完整的托管處理,因此,Windows自繪控件的滾動條的定制性和適用性差。使得在使用Windows窗口內(nèi)容控件時,實現(xiàn)在控件內(nèi)對滾動條的完全自繪操作,提高了自繪控件的定制性和適用性。
[0044]基于上述硬件架構(gòu),提出本發(fā)明自繪控件實現(xiàn)方法實施例。
[0045]如圖2所示,提出本發(fā)明一種自繪控件實現(xiàn)方法的第一實施例,所述自繪控件實現(xiàn)方法包括:
[0046]步驟S10,接收顯示內(nèi)容控制操作;
[0047]頁面瀏覽用戶在需要控制頁面顯示內(nèi)容時,通過鼠標或者物理按鍵對頁面顯示的內(nèi)容進行控制,例如,翻頁、向上翻或向下翻所顯示的內(nèi)容等。所述發(fā)出顯示內(nèi)容控制操作的方式包括:基于滾動條控件區(qū)域發(fā)出控制操作或者基于顯示內(nèi)容的顯示控件區(qū)域發(fā)出控制操作等。所述控制操作包括鼠標操作、鍵盤操作及/或繪制消息等。
[0048]在通過滾動條完成顯示內(nèi)容的控制操作之前,需要對內(nèi)容控件和滾動條控件的參數(shù)進行設(shè)置。
[0049]具體的,參考圖3,設(shè)置內(nèi)容控件的參數(shù)的過程包括:
[0050]步驟S30,接收內(nèi)容控件的參數(shù)設(shè)置指令;內(nèi)容控件的滾動條的繪制跟控件大小、 完整內(nèi)容大小、起始顯不坐標等都是相關(guān)聯(lián)的,為了更好說明本方案,先定義了內(nèi)容大小相關(guān)度的參數(shù)。這些參數(shù)為內(nèi)容控件的大小參數(shù),同時滾動條為了與內(nèi)容控件保持同步,也需要保存相應(yīng)的參數(shù)。
[0051]步驟S40,根據(jù)所述內(nèi)容控件的參數(shù)設(shè)置指令設(shè)置顯示內(nèi)容的參數(shù)。為顯示內(nèi)容設(shè)置的參數(shù)包括PageLength、ContentLength及/或Pos,其中,PageLength指內(nèi)容控件顯示區(qū)域的大小,ContentLength實際完整內(nèi)容的大小,Pos指內(nèi)容控件的起始坐標中顯示的內(nèi)容在完整內(nèi)容中的相對位置,其取值范圍為[〇,ContentLength_PageLength]。如果滾動條是縱向滾動條,以上參數(shù)指的是對應(yīng)的高度;如果滾動條是橫向滾動條,以上參數(shù)指的是對應(yīng)的寬度。這些參數(shù)可以以像素為單位,也可以以行或者列為單位。以上參數(shù)在內(nèi)容控件和滾動條中的單位保持一致。
[0052]具體的,參考圖4,設(shè)置滾動條控件的參數(shù)的過程可以包括:
[0053]步驟S50,通過調(diào)用函數(shù)將為內(nèi)容控件設(shè)置的參數(shù)發(fā)送給滾動條控件,以使?jié)L動條控件設(shè)置與所述內(nèi)容控件相應(yīng)的參數(shù)。
[0054]為了使?jié)L動條與內(nèi)容控件的位置參數(shù)保持同步,提供了相應(yīng)的滾動條參數(shù)設(shè)置, 可分別對應(yīng)內(nèi)容控件的相應(yīng)參數(shù)設(shè)置??烧{(diào)用如下函數(shù)把內(nèi)容控件相應(yīng)位置的參數(shù)傳遞給滾動條,并完成滾動條控件的參數(shù)設(shè)置。通過調(diào)用SetPageLength、SetContentLength及 /或SetPos函數(shù)將為內(nèi)容控件設(shè)置的參數(shù)發(fā)送給滾動條控件,以使?jié)L動條控件設(shè)置與所述內(nèi)容控件相應(yīng)的參數(shù)。
[0055]在設(shè)置好內(nèi)容控件和滾動條控件的參數(shù)后,初始化內(nèi)容控件,在內(nèi)容控件初始化時,可以根據(jù)控件大小、完整內(nèi)容大小獲得PageLength和ContentLength,并一般把Pos設(shè)置為〇,在有特殊情況下根據(jù)用戶指令,設(shè)置為其他值,在初始化設(shè)置內(nèi)容控件的參數(shù)時,調(diào)用滾動條的設(shè)置參數(shù),對滾動條的PageLength、ContentLength及/或Pos參數(shù)進行同步設(shè)置。
[0056]在內(nèi)容控件的初始化操作完成后,接收顯示內(nèi)容的控制操作,以通過滾動條控件來響應(yīng)所述對顯示內(nèi)容的控制操作。
[0057]步驟S20,在所述顯示內(nèi)容的內(nèi)容控件為Windows窗口內(nèi)容控件時,通過所述內(nèi)容控件的父窗口將所述控制操作轉(zhuǎn)發(fā)至滾動條控件,以使所述滾動條控件根據(jù)所述控制操作完成顯示內(nèi)容的控制響應(yīng)操作。
[0058]在接收到顯示內(nèi)容的控制操作后,判斷所述顯示內(nèi)容的內(nèi)容控件是否為Windows 窗口內(nèi)容控件。在所述顯示內(nèi)容的內(nèi)容控件不為Windows窗口內(nèi)容控件時,即為Windows自繪的內(nèi)容控件時,自繪滾動條控件可以繪制在內(nèi)容控件內(nèi),可由內(nèi)容控件直接將所述控制操作轉(zhuǎn)發(fā)至滾動條控件,以使所述滾動條控件根據(jù)所述控制操作完成顯示內(nèi)容的控制響應(yīng)操作;在所述顯示內(nèi)容的內(nèi)容控件為Windows窗口內(nèi)容控件時,通過所述內(nèi)容控件的父窗口將所述控制操作轉(zhuǎn)發(fā)至滾動條控件,以使所述滾動條控件根據(jù)所述控制操作完成顯示內(nèi)容的控制響應(yīng)操作?,F(xiàn)有的在Windows原生的內(nèi)容控件,如list、tree。滾動條位于內(nèi)容控件內(nèi),只能依賴于內(nèi)容控件傳遞鼠標、鍵盤和繪制消息,在內(nèi)容控件的這些消息機制不能修改的基礎(chǔ)上,可自定義改動的其他操作很差,但無法在內(nèi)容控件內(nèi)實現(xiàn)完全自繪的滾動條, 導(dǎo)致內(nèi)容控件的滾動條可自定義度較差。區(qū)別于現(xiàn)有的在內(nèi)容控件繪制的滾動條,本方案的滾動條是在內(nèi)容控件的父窗口區(qū)域進行完全自繪的滾動條,可以隨意定制,并完全接管父窗口的鼠標、鍵盤和繪制消息。
[0059]本實施例在使用Windows窗口內(nèi)容控件時,通過所述內(nèi)容控件的父窗口將所述控制操作發(fā)送至滾動條控件,以完成顯示內(nèi)容的控制操作。有效避免在使用的Windows窗口內(nèi)容控件時,在控件內(nèi)只能對滾動條進行有限的自繪,也不能對滾動條的鼠標、鍵盤消息進行完整的托管處理,因此,Windows自繪控件的滾動條的定制性和適用性差。使得在使用的 Windows窗口內(nèi)容控件時,實現(xiàn)在控件內(nèi)對滾動條的完全自繪操作,提高了自繪控件的定制性和適用性。
[0060]進一步地,基于上述自繪控件實現(xiàn)方法的第一實施例,提出本發(fā)明的第二實施例。 如圖5所示,所述步驟S50之后,還可以包括:
[0061]步驟S60,在偵測到顯示內(nèi)容的顯示參數(shù)發(fā)生變化時,確定與所述發(fā)生變化的相應(yīng)參數(shù)對應(yīng)的滾動條控件的函數(shù);
[0062]所述顯示內(nèi)容的顯示參數(shù)包括內(nèi)容控件的PageLength、ContentLength及/或 P〇s參數(shù)等。偵測顯示內(nèi)容的顯示參數(shù)是否發(fā)生變化,即偵測內(nèi)容控件的PageLength、 ContentLength及/或Pos參數(shù)是否發(fā)生變化。具體的,可以通過偵測顯示窗口的大小是否發(fā)生變化來判斷內(nèi)容控件的PageLength是否發(fā)生變化,通過內(nèi)容操作,如新增、刪除顯示內(nèi)容等來判斷內(nèi)容控件的ContentLength是否發(fā)生變化,通過內(nèi)容控件的起始位置是否發(fā)生變化是否導(dǎo)致Pos變化。
[0063]在內(nèi)容控件的PageLength、ContentLength及/或Pos參數(shù)任意一個發(fā)生變化,貝丨J 表示顯示內(nèi)容的顯示參數(shù)發(fā)生變化,確定與所述發(fā)生變化的相應(yīng)參數(shù)對應(yīng)的滾動條控件的函數(shù);例如,確定SetPageLength函數(shù)、SetContentLength函數(shù)及/或SetPos函數(shù)。
[0064]步驟S70,調(diào)用所確定的函數(shù)對滾動條控件的參數(shù)進行更新。
[0065]例如,在內(nèi)容控件的PageLength發(fā)生變化時,調(diào)用SetPageLength函數(shù)對滾動條的PageLength參數(shù)進行相應(yīng)調(diào)整;在內(nèi)容控件的ContentLength發(fā)生變化時,調(diào)用 SetContentLength函數(shù)對滾動條的ContentLength參數(shù)進行相應(yīng)調(diào)整,在內(nèi)容控件的Pos 參數(shù)發(fā)生變化時,調(diào)用SetPos函數(shù)對滾動條的Pos參數(shù)進行相應(yīng)調(diào)整。
[0066]本實施例通過在顯示內(nèi)容的顯示參數(shù)發(fā)生變化時,即在內(nèi)容控件的參數(shù)發(fā)生變化時,調(diào)用相應(yīng)的函數(shù)更新滾動條的參數(shù),使得內(nèi)容控件的參數(shù)與滾動條的參數(shù)同步,進而使得通過滾動條控制顯示內(nèi)容的操作更加準確,提高顯示內(nèi)容控制的效率。
[0067]進一步地,基于上述自繪控件實現(xiàn)方法的第二實施例,提出本發(fā)明的第三實施例。 如圖7所示,所述方法還可以包括:
[0068]步驟S80,接收滾動條控件OnPosChanged回調(diào)函數(shù)的注冊指令,并根據(jù)所述注冊指令注冊O(shè)nPosChanged回調(diào)函數(shù);
[0069]對滾動條的操作,只能改變滾動條的Pos參數(shù),并不會改變PageLength和 ContentLength參數(shù)。通過內(nèi)容控件監(jiān)控滾動條的Pos參數(shù)的變化。在通過內(nèi)容控件監(jiān)控滾動條的P〇s參數(shù)的變化之前,需要注冊滾動條的OnPosChanged回調(diào)函數(shù)。接收滾動條 OnPosChanged回調(diào)函數(shù)的注冊指令,并根據(jù)所述注冊指令注冊O(shè)nPosChanged回調(diào)函數(shù)。
[0070]步驟S90,在滾動條控件的Pos參數(shù)發(fā)生變化時,觸發(fā)OnPosChanged事件,通過滾動條控件的GetPos函數(shù)獲取滾動條控件的Pos參數(shù),通過所獲取到滾動條控件的Pos參數(shù)更新內(nèi)容控件的Pos參數(shù)。
[0071]在由用戶操作導(dǎo)致滾動條的Pos發(fā)生變化時,會觸發(fā)OnPosChanged事件。內(nèi)容控件可以通過滾動條的GetPos函數(shù)來獲取滾動條的Pos參數(shù),并以此更新內(nèi)容控件的Pos參數(shù)。用戶操作導(dǎo)致滾動條的Pos發(fā)生變化的處理時序圖如圖7所示。
[0072]具體的,對于內(nèi)容控件的顯示內(nèi)容的顯示參數(shù)發(fā)生變化可以由基于鼠標的滾輪操作導(dǎo)致。
[0073]鼠標滾輪操作會導(dǎo)致Pos參數(shù)的變化。對于內(nèi)容控件來說,無論鼠標在內(nèi)容控件區(qū)域內(nèi),還是在滾動條區(qū)域內(nèi),滑動鼠標滾輪,都是有效的操作。為了保證統(tǒng)一處理,可以把內(nèi)容控件的滾輪消息轉(zhuǎn)發(fā)給滾動條統(tǒng)一處理。因此,本發(fā)明的滾動條,提供了 OnMouseWheel 函數(shù)用于接收內(nèi)容控件轉(zhuǎn)發(fā)來的MouseWheel消息。當鼠標在滾動條區(qū)域時,MouseWheel消息的處理流程如圖8所示;當鼠標在內(nèi)容控件區(qū)域內(nèi)時,MouseWheel消息的處理流程如圖 9所示。
[0074]本實施例通過在滾動條的Pos參數(shù)發(fā)生變化時,通過滾動條的GetPos函數(shù)來獲取滾動條的Pos參數(shù),進而根據(jù)所獲取的滾動條的Pos參數(shù)更新內(nèi)容控件的Pos參數(shù),使得內(nèi)容控件的參數(shù)與滾動條的參數(shù)同步,進而使得通過滾動條控制顯示內(nèi)容的操作更加準確, 提尚顯不內(nèi)容控制的效率。
[0075]對應(yīng)地,提出本發(fā)明自繪控件實現(xiàn)裝置的較佳實施例。參考圖10,所述自繪控件實現(xiàn)裝置包括接發(fā)模塊10、設(shè)置模塊20、調(diào)用模塊30及處理模塊40。
[0076]所述接發(fā)模塊10,用于接收顯示內(nèi)容控制操作;
[0077]頁面瀏覽用戶在需要控制頁面顯示內(nèi)容時,通過鼠標或者物理按鍵對頁面顯示的內(nèi)容進行控制,例如,翻頁、向上翻或向下翻所顯示的內(nèi)容等。所述發(fā)出顯示內(nèi)容控制操作的方式包括:基于滾動條控件區(qū)域發(fā)出控制操作或者基于顯示內(nèi)容的顯示控件區(qū)域發(fā)出控制操作等。所述控制操作包括鼠標操作、鍵盤操作及/或繪制消息等。
[0078]在通過滾動條完成顯示內(nèi)容的控制操作之前,需要對內(nèi)容控件和滾動條控件的參數(shù)進行設(shè)置。
[0079]所述接發(fā)模塊10,還用于接收內(nèi)容控件的參數(shù)設(shè)置指令;內(nèi)容控件的滾動條的繪制跟控件大小、完整內(nèi)容大小、起始顯不坐標等都是相關(guān)聯(lián)的,為了更好說明本方案,先定義了內(nèi)容大小相關(guān)度的參數(shù)。這些參數(shù)為內(nèi)容控件的大小參數(shù),同時滾動條為了與內(nèi)容控件保持同步,也需要保存相應(yīng)的參數(shù)。
[0080]所述設(shè)置模塊20,用于根據(jù)所述內(nèi)容控件的參數(shù)設(shè)置指令設(shè)置顯示內(nèi)容的參數(shù)。 為顯示內(nèi)容設(shè)置的參數(shù)包括PageLength、ContentLength及/或Pos,其中,PageLength指內(nèi)容控件顯示區(qū)域的大小,ContentLength實際完整內(nèi)容的大小,Pos指內(nèi)容控件的起始坐標中顯示的內(nèi)容在完整內(nèi)容中的相對位置,其取值范圍為[0,ContentLength-PageLength]。 如果滾動條是縱向滾動條,以上參數(shù)指的是對應(yīng)的高度;如果滾動條是橫向滾動條,以上參數(shù)指的是對應(yīng)的寬度。這些參數(shù)可以以像素為單位,也可以以行或者列為單位。以上參數(shù)在內(nèi)容控件和滾動條中的單位保持一致。
[0081]所述調(diào)用模塊30,用于通過調(diào)用函數(shù)將為內(nèi)容控件設(shè)置的參數(shù)發(fā)送給滾動條控件,以使?jié)L動條控件設(shè)置與所述內(nèi)容控件相應(yīng)的參數(shù)。
[0082]為了使?jié)L動條與內(nèi)容控件的位置參數(shù)保持同步,提供了相應(yīng)的滾動條參數(shù)設(shè)置, 可分別對應(yīng)內(nèi)容控件的相應(yīng)參數(shù)設(shè)置??赏ㄟ^調(diào)用模塊30調(diào)用如下函數(shù)把內(nèi)容控件相應(yīng)位置的參數(shù)傳遞給滾動條,并完成滾動條控件的參數(shù)設(shè)置。調(diào)用模塊30通過調(diào)用 SetPageLength、SetContentLength及/或SetPos函數(shù)將為內(nèi)容控件設(shè)置的參數(shù)發(fā)送給滾動條控件,以使?jié)L動條控件設(shè)置與所述內(nèi)容控件相應(yīng)的參數(shù)。
[0083]在設(shè)置好內(nèi)容控件和滾動條控件的參數(shù)后,初始化內(nèi)容控件,在內(nèi)容控件初始化時,可以根據(jù)控件大小、完整內(nèi)容大小獲得PageLength和ContentLength,并一般把Pos參數(shù)設(shè)置為〇,在有特殊情況下根據(jù)用戶指令,將Pos參數(shù)設(shè)置為其他值,在初始化設(shè)置內(nèi)容控件的參數(shù)時,調(diào)用滾動條的設(shè)置參數(shù),對滾動條的PageLength、ContentLength及/或Pos 參數(shù)進行同步設(shè)置。
[0084]在內(nèi)容控件的初始化操作完成后,接發(fā)模塊10接收顯示內(nèi)容的控制操作,以通過滾動條控件來響應(yīng)所述對顯示內(nèi)容的控制操作。
[0085]所述處理模塊40,用于在所述顯示內(nèi)容的內(nèi)容控件為Windows窗口內(nèi)容控件時, 通過所述內(nèi)容控件的父窗口將所述控制操作轉(zhuǎn)發(fā)至滾動條控件,以使所述滾動條控件根據(jù)所述控制操作完成顯示內(nèi)容的控制響應(yīng)操作。
[0086]在接收到顯示內(nèi)容的控制操作后,處理模塊40判斷所述顯示內(nèi)容的內(nèi)容控件是否為Windows窗口內(nèi)容控件。在所述顯示內(nèi)容的內(nèi)容控件不為Windows窗口內(nèi)容控件時,即為Windows自繪的內(nèi)容控件時,處理模塊40自繪滾動條控件可以繪制在內(nèi)容控件內(nèi),可由內(nèi)容控件直接將所述控制操作轉(zhuǎn)發(fā)至滾動條控件,以使所述滾動條控件根據(jù)所述控制操作完成顯示內(nèi)容的控制響應(yīng)操作;在所述顯示內(nèi)容的內(nèi)容控件為Windows窗口內(nèi)容控件時, 處理模塊40通過所述內(nèi)容控件的父窗口將所述控制操作轉(zhuǎn)發(fā)至滾動條控件,以使所述滾動條控件根據(jù)所述控制操作完成顯示內(nèi)容的控制響應(yīng)操作。現(xiàn)有的在Windows原生的內(nèi)容控件,如list、tree。滾動條位于內(nèi)容控件內(nèi),只能依賴于內(nèi)容控件傳遞鼠標、鍵盤和繪制消息,在內(nèi)容控件的這些消息機制不能修改的基礎(chǔ)上,可自定義改動的其他操作很差,但無法在內(nèi)容控件內(nèi)實現(xiàn)完全自繪的滾動條,導(dǎo)致內(nèi)容控件的滾動條可自定義度較差。區(qū)別于現(xiàn)有的在內(nèi)容控件繪制的滾動條,本方案的滾動條是在內(nèi)容控件的父窗口區(qū)域進行完全自繪的滾動條,可以隨意定制,并完全接管父窗口的鼠標、鍵盤和繪制消息。
[0087]本實施例在使用Windows窗口內(nèi)容控件時,通過所述內(nèi)容控件的父窗口將所述控制操作發(fā)送至滾動條控件,以完成顯示內(nèi)容的控制操作。有效避免在使用的Windows窗口內(nèi)容控件時,在控件內(nèi)只能對滾動條進行有限的自繪,也不能對滾動條的鼠標、鍵盤消息進行完整的托管處理,因此,Windows自繪控件的滾動條的定制性和適用性差。使得在使用的 Windows窗口內(nèi)容控件時,實現(xiàn)在控件內(nèi)對滾動條的完全自繪操作,提高了自繪控件的定制性和適用性。
[0088]進一步地,所述處理模塊40,還用于在偵測到顯示內(nèi)容的顯示參數(shù)發(fā)生變化時,確定與所述發(fā)生變化的相應(yīng)參數(shù)對應(yīng)的滾動條控件的函數(shù);
[0089]所述顯示內(nèi)容的顯示參數(shù)包括內(nèi)容控件的PageLength、ContentLength及/或 P〇s參數(shù)等。偵測顯示內(nèi)容的顯示參數(shù)是否發(fā)生變化,即偵測內(nèi)容控件的PageLength、 ContentLength及/或Pos參數(shù)是否發(fā)生變化。具體的,可以通過偵測顯示窗口的大小是否發(fā)生變化來判斷內(nèi)容控件的PageLength是否發(fā)生變化,通過內(nèi)容操作,如新增、刪除顯示內(nèi)容等來判斷內(nèi)容控件的ContentLength是否發(fā)生變化,通過內(nèi)容控件的起始位置是否發(fā)生變化是否導(dǎo)致Pos變化。
[0090]在內(nèi)容控件的PageLength、ContentLength及/或Pos參數(shù)任意一個發(fā)生變化,貝丨J 表示顯示內(nèi)容的顯示參數(shù)發(fā)生變化,確定與所述發(fā)生變化的相應(yīng)參數(shù)對應(yīng)的滾動條控件的函數(shù);例如,確定SetPageLength函數(shù)、SetContentLength函數(shù)及/或SetPos函數(shù)。
[0091]所述調(diào)用模塊30,還用于調(diào)用所確定的函數(shù)對滾動條控件的參數(shù)進行更新。
[0092]例如,在內(nèi)容控件的PageLength發(fā)生變化時,調(diào)用模塊30調(diào)用SetPageLength函數(shù)對滾動條的PageLength參數(shù)進行相應(yīng)調(diào)整;在內(nèi)容控件的ContentLength發(fā)生變化時, 調(diào)用模塊30調(diào)用SetContentLength函數(shù)對滾動條的ContentLength參數(shù)進行相應(yīng)調(diào)整, 在內(nèi)容控件的Pos參數(shù)發(fā)生變化時,調(diào)用模塊30調(diào)用SetPos函數(shù)對滾動條的Pos參數(shù)進行相應(yīng)調(diào)整。
[0093]本實施例通過在顯示內(nèi)容的顯示參數(shù)發(fā)生變化時,即在內(nèi)容控件的參數(shù)發(fā)生變化時,調(diào)用相應(yīng)的函數(shù)更新滾動條的參數(shù),使得內(nèi)容控件的參數(shù)與滾動條的參數(shù)同步,進而使得通過滾動條控制顯示內(nèi)容的操作更加準確,提高顯示內(nèi)容控制的效率。
[0094]進一步地,所述接發(fā)模塊10,還用于接收滾動條控件OnPosChanged回調(diào)函數(shù)的注冊指令,并根據(jù)所述注冊指令注冊O(shè)nPosChanged回調(diào)函數(shù);
[0095]對滾動條的操作,只能改變滾動條的Pos參數(shù),并不會改變PageLength和 ContentLength參數(shù)。通過內(nèi)容控件監(jiān)控滾動條的Pos參數(shù)的變化。在通過內(nèi)容控件監(jiān)控滾動條的Pos參數(shù)的變化之前,需要注冊滾動條的OnPosChanged回調(diào)函數(shù)。接發(fā)模塊 10接收滾動條OnPosChanged回調(diào)函數(shù)的注冊指令,并處理模塊40根據(jù)所述注冊指令注冊 OnPosChanged 回調(diào)函數(shù)。
[0096]所述處理模塊40,還用于在滾動條控件的Pos參數(shù)發(fā)生變化時,觸發(fā) OnPosChanged事件,通過滾動條控件的GetPos函數(shù)獲取滾動條控件的Pos參數(shù),通過所獲取到滾動條控件的Pos參數(shù)更新內(nèi)容控件的Pos參數(shù)。
[0097]在由用戶操作導(dǎo)致滾動條的Pos發(fā)生變化時,會觸發(fā)OnPosChanged事件。處理模塊40可以通過滾動條的GetPos函數(shù)來獲取滾動條的Pos參數(shù),并以此更新內(nèi)容控件的Pos 參數(shù)。用戶操作導(dǎo)致滾動條的Pos發(fā)生變化的處理時序圖如圖7所示。
[0098]具體的,對于內(nèi)容控件的顯示內(nèi)容的顯示參數(shù)發(fā)生變化可以由基于鼠標的滾輪操作導(dǎo)致。
[0099]鼠標滾輪操作會導(dǎo)致Pos參數(shù)的變化。對于內(nèi)容控件來說,無論鼠標在內(nèi)容控件區(qū)域內(nèi),還是在滾動條區(qū)域內(nèi),滑動鼠標滾輪,都是有效的操作。為了保證統(tǒng)一處理,可以把內(nèi)容控件的滾輪消息轉(zhuǎn)發(fā)給滾動條統(tǒng)一處理。因此,本發(fā)明的滾動條,提供了 OnMouseWheel 函數(shù)用于接收內(nèi)容控件轉(zhuǎn)發(fā)來的MouseWheel消息。當鼠標在滾動條區(qū)域時,MouseWheel消息的處理流程如圖8所示;當鼠標在內(nèi)容控件區(qū)域內(nèi)時,MouseWheel消息的處理流程如圖 9所示。
[0100]本實施例通過在滾動條的Pos參數(shù)發(fā)生變化時,通過滾動條的GetPos函數(shù)來獲取滾動條的Pos參數(shù),進而根據(jù)所獲取的滾動條的Pos參數(shù)更新內(nèi)容控件的Pos參數(shù),使得內(nèi)容控件的參數(shù)與滾動條的參數(shù)同步,進而使得通過滾動條控制顯示內(nèi)容的操作更加準確, 提尚顯不內(nèi)容控制的效率。
[0101]需要說明的是,在本文中,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者裝置不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者裝置所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括該要素的過程、方法、物品或者裝置中還存在另外的相同要素。
[0102]上述本發(fā)明實施例序號僅僅為了描述,不代表實施例的優(yōu)劣。
[0103]通過以上的實施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到上述實施例方法可借助軟件加必需的通用硬件平臺的方式來實現(xiàn),當然也可以通過硬件,但很多情況下前者是更佳的實施方式?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì) (如R0M/RAM、磁碟、光盤)中,包括若干指令用以使得一臺終端設(shè)備(可以是手機,計算機, 服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述的方法。
【主權(quán)項】
1.一種自繪控件實現(xiàn)方法,其特征在于,包括步驟:接收顯示內(nèi)容控制操作;在所述顯示內(nèi)容的內(nèi)容控件為Windows窗口內(nèi)容控件時,通過所述內(nèi)容控件的父窗口 將所述控制操作轉(zhuǎn)發(fā)至滾動條控件,以使所述滾動條控件根據(jù)所述控制操作完成顯示內(nèi)容 的控制響應(yīng)操作。2.如權(quán)利要求1所述的自繪控件實現(xiàn)方法,其特征在于,所述接收顯示內(nèi)容控制操作 的步驟之前,還包括:接收內(nèi)容控件的參數(shù)設(shè)置指令;根據(jù)所述內(nèi)容控件的參數(shù)設(shè)置指令設(shè)置顯示內(nèi)容的參數(shù)。3.如權(quán)利要求2所述的自繪控件實現(xiàn)方法,其特征在于,所述根據(jù)所述內(nèi)容控件的參 數(shù)設(shè)置指令設(shè)置顯示內(nèi)容的參數(shù)的步驟之后,還包括:通過調(diào)用函數(shù)將為內(nèi)容控件設(shè)置的參數(shù)發(fā)送給滾動條控件,以使?jié)L動條控件設(shè)置與所 述內(nèi)容控件相應(yīng)的參數(shù)。4.如權(quán)利要求3所述的自繪控件實現(xiàn)方法,其特征在于,所述通過調(diào)用函數(shù)將為內(nèi)容 控件設(shè)置的參數(shù)發(fā)送給滾動條控件的步驟之后,還包括:在偵測到顯示內(nèi)容的顯示參數(shù)發(fā)生變化時,確定與所述發(fā)生變化的相應(yīng)參數(shù)對應(yīng)的滾 動條控件的函數(shù);調(diào)用所確定的函數(shù)對滾動條控件的參數(shù)進行更新。5.如權(quán)利要求3或4所述的自繪控件實現(xiàn)方法,其特征在于,所述方法還包括:接收滾動條控件OnPosChanged回調(diào)函數(shù)的注冊指令,并根據(jù)所述注冊指令注冊 OnPosChanged 回調(diào)函數(shù);在滾動條控件的P〇s參數(shù)發(fā)生變化時,觸發(fā)OnPosChanged事件,通過滾動條控件的 GetPos函數(shù)獲取滾動條控件的Pos參數(shù),通過所獲取到滾動條控件的Pos參數(shù)更新內(nèi)容控 件的Pos參數(shù)。6.—種自繪控件實現(xiàn)裝置,其特征在于,包括:接發(fā)模塊,用于接收顯示內(nèi)容控制操作;處理模塊,用于在所述顯示內(nèi)容的內(nèi)容控件為Windows窗口內(nèi)容控件時,通過所述內(nèi) 容控件的父窗口將所述控制操作轉(zhuǎn)發(fā)至滾動條控件,以使所述滾動條控件根據(jù)所述控制操 作完成顯示內(nèi)容的控制響應(yīng)操作。7.如權(quán)利要求6所述的自繪控件實現(xiàn)裝置,其特征在于,所述自繪控件實現(xiàn)裝置還包 括設(shè)置模塊,所述接發(fā)模塊,還用于接收內(nèi)容控件的參數(shù)設(shè)置指令;設(shè)置模塊,用于根據(jù)所述內(nèi)容控件的參數(shù)設(shè)置指令設(shè)置顯示內(nèi)容的參數(shù)。8.如權(quán)利要求7所述的自繪控件實現(xiàn)裝置,其特征在于,所述自繪控件實現(xiàn)裝置還包 括調(diào)用模塊,用于通過調(diào)用函數(shù)將為內(nèi)容控件設(shè)置的參數(shù)發(fā)送給滾動條控件,以使?jié)L動條 控件設(shè)置與所述內(nèi)容控件相應(yīng)的參數(shù)。9.如權(quán)利要求8所述的自繪控件實現(xiàn)裝置,其特征在于,所述處理模塊,還用于在偵測 到顯示內(nèi)容的顯示參數(shù)發(fā)生變化時,確定與所述發(fā)生變化的相應(yīng)參數(shù)對應(yīng)的滾動條控件的 函數(shù);所述調(diào)用模塊,還用于調(diào)用所確定的函數(shù)對滾動條控件的參數(shù)進行更新。10.如權(quán)利要求8或9所述的自繪控件實現(xiàn)裝置,其特征在于,所述接發(fā)模塊,還 用于接收滾動條控件OnPosChanged回調(diào)函數(shù)的注冊指令,并根據(jù)所述注冊指令注冊 OnPosChanged 回調(diào)函數(shù);所述處理模塊,還用于在滾動條控件的P〇s參數(shù)發(fā)生變化時,觸發(fā)OnPosChanged事件, 通過滾動條控件的GetPos函數(shù)獲取滾動條控件的Pos參數(shù),通過所獲取到滾動條控件的 Pos參數(shù)更新內(nèi)容控件的Pos參數(shù)。
【文檔編號】G06F9/44GK106033343SQ201510115540
【公開日】2016年10月19日
【申請日】2015年3月16日
【發(fā)明人】李斌
【申請人】騰訊科技(深圳)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
钟山县| 莱州市| 中卫市| 藁城市| 灵武市| 汾阳市| 泾川县| 福鼎市| 杭锦旗| 车险| 博湖县| 韶关市| 黄浦区| 广灵县| 云龙县| 衡水市| 客服| 绥德县| 溧阳市| 五原县| 巴林左旗| 仙居县| 鱼台县| 锡林郭勒盟| 溧阳市| 永昌县| 专栏| 庆安县| 漯河市| 克拉玛依市| 新晃| 溧阳市| 昆明市| 隆子县| 广州市| 天水市| 星座| 虹口区| 泰顺县| 綦江县| 乐清市|