檢視原始碼 wxWindow (wx v2.4.3)

wxWindow 是所有視窗的基礎類別,代表螢幕上任何可見的物件。

所有控制項、頂層視窗等等都是視窗。然而,Sizer 和裝置上下文不是,因為它們本身不會出現在螢幕上。

請注意,視窗的所有子視窗都會在視窗本身被刪除之前,由解構子自動刪除,這表示您不必擔心手動刪除它們。請參閱視窗刪除概述以獲取更多資訊。

另請注意,在此類別以及許多其他的 wxWidgets 類別中,某些 GetXXX() 方法可能會被覆寫(例如,getSize/1getClientSize/1)。在這種情況下,覆寫是非虛擬的,因為具有相同名稱的多個虛擬函數會導致衍生類別層級的虛擬函數名稱隱藏(簡單來說,這表示衍生類別必須覆寫所有被覆寫的變體,如果它覆寫了任何一個變體)。為了允許在衍生類別中覆寫它們,wxWidgets 使用唯一的受保護虛擬 DoGetXXX() 方法,所有 GetXXX() 方法都會轉發到該方法,因此覆寫前者會變更後者的行為。

樣式

此類別支援下列樣式

  • wxBORDER_DEFAULT:視窗類別將決定要顯示的邊框類型(如果有的話)。

  • wxBORDER_SIMPLE:在視窗周圍顯示細邊框。wxSIMPLE_BORDER 是此樣式的舊名稱。

  • wxBORDER_SUNKEN:顯示凹陷邊框。wxSUNKEN_BORDER 是此樣式的舊名稱。

  • wxBORDER_RAISED:顯示凸起邊框。wxRAISED_BORDER 是此樣式的舊名稱。

  • wxBORDER_STATIC:顯示適用於靜態控制項的邊框。wxSTATIC_BORDER 是此樣式的舊名稱。僅限 Windows。

  • wxBORDER_THEME:在目前平台上顯示適用於控制項的原生邊框。在 Windows 上,這將是主題式邊框;在大多數其他平台上,將使用凹陷邊框。有關 Windows 上主題式邊框的更多資訊,請參閱 Windows 上的主題式邊框。

  • wxBORDER_NONE:不顯示邊框,覆寫視窗的預設邊框樣式。wxNO_BORDER 是此樣式的舊名稱。

  • wxBORDER_DOUBLE:此樣式已過時,不應使用。

  • wxTRANSPARENT_WINDOW:視窗是透明的,也就是說,它不會接收繪製事件。僅限 Windows。

  • wxTAB_TRAVERSAL:此樣式由 wxWidgets 用於支援在其子視窗之間使用 TAB 鍵導覽的視窗,例如 wxDialogwxPanel。它幾乎不應在應用程式程式碼中使用。

  • wxWANTS_CHARS:使用此樣式表示視窗想要取得所有按鍵的所有字元/按鍵事件,即使是通常用於對話方塊導覽的 TAB 鍵或 ENTER 鍵等按鍵,在沒有此樣式的情況下也不會產生這些事件。如果您需要使用此樣式以取得箭頭等等,但仍希望進行正常的鍵盤導覽,您應該在回應 Tab 和 Shift-Tab 的按鍵事件時呼叫 Navigate。

  • wxNO_FULL_REPAINT_ON_RESIZE:在 Windows 上,此樣式過去用於在變更視窗大小時停用完全重新繪製視窗。由於此行為現在是預設行為,因此此樣式現在已過時且不再起作用。

  • wxVSCROLL:使用此樣式啟用垂直捲軸。請注意,此樣式無法與不支援捲軸的原生控制項一起使用,也不能與大多數連接埠中的頂層視窗一起使用。

  • wxHSCROLL:使用此樣式啟用水平捲軸。與 wxVSCROLL 相同的限制也適用於此樣式。

  • wxALWAYS_SHOW_SB:如果視窗有捲軸,則停用它們,而不是在不需要它們時(例如,當視窗的大小足以不需要捲軸來導覽時)隱藏它們。此樣式目前已在 wxMSW、wxGTK 和 wxUniversal 中實作,在其他平台上則無任何作用。

  • wxCLIP_CHILDREN:使用此樣式消除背景重新繪製造成的閃爍,然後在它們上面繪製子視窗。僅限 Windows。

  • wxFULL_REPAINT_ON_RESIZE:使用此樣式強制在每次調整視窗大小時完全重新繪製視窗,而不是僅重新繪製受調整大小影響的視窗部分。請注意,這是 2.5.1 版本之前的預設行為,如果您在先前可運作的程式碼中遇到重新繪製問題,您可能想要嘗試此方法。目前,此樣式僅適用於 GTK+ 2 和 Windows,在其他平台上始終會執行完整重新繪製。

額外樣式

此類別支援下列額外樣式

  • wxWS_EX_BLOCK_EVENTS:wxCommandEvents 和衍生類別的物件依預設會轉發到父視窗,依此類推,以遞迴方式進行。針對給定的視窗使用此旗標可在此視窗中封鎖此傳播,也就是說,防止事件進一步向上傳播。對話方塊預設會開啟此旗標,原因已在 overview_events 中說明。

  • wxWS_EX_TRANSIENT:請勿將此視窗用作其他視窗的隱含父視窗:這必須與暫時視窗一起使用,否則會有建立以這個視窗作為父視窗的對話方塊/框架的風險,如果父視窗在子視窗之前被損毀,則會導致當機。

  • wxWS_EX_CONTEXTHELP:在 Windows 下,會在標題上放置一個查詢按鈕。按下按鈕時,Windows 將進入內容相關說明模式,如果使用者按一下應用程式視窗,wxWidgets 將傳送 wxEVT_HELP 事件。此樣式無法與 wxMAXIMIZE_BOXwxMINIMIZE_BOX 一起使用(由於基礎原生行為),因此如果使用此樣式,則會自動關閉這兩個樣式。

  • wxWS_EX_PROCESS_IDLE:此視窗應始終處理閒置事件,即使 wxIdleEvent:setMode/1 設定的模式為 wxIDLE_PROCESS_SPECIFIED 也一樣。

  • wxWS_EX_PROCESS_UI_UPDATES:此視窗應始終處理 UI 更新事件,即使 wxUpdateUIEvent:setMode/1 設定的模式為 wxUPDATE_UI_PROCESS_SPECIFIED 也一樣。

請參閱

此類別繼承自以下類別,並且可以使用其函數

wxWidgets 文件:wxWindow

事件

此類別發出的事件類型

摘要

函數

設定快取的最佳大小值。

如果系統支援透明視窗且呼叫 setTransparent/2 可能會成功,則傳回 true。

將所有滑鼠輸入導向此視窗。

將視窗置中。

將視窗在其父視窗上置中。

透過使用目前的背景色彩填滿視窗來清除視窗。

從相對於此視窗的座標轉換為螢幕座標。

從相對於此視窗的座標轉換為螢幕座標。

此函數只是產生一個 wxCloseEvent,其處理常式通常會嘗試關閉視窗。

這是一個為了方便起見而提供的多載成員函數。它與上述函數的唯一不同之處在於它接受的引數。

這是一個為了方便起見而提供的多載成員函數。它與上述函數的唯一不同之處在於它接受的引數。

在建立 C++ 物件之後,建構實際的視窗物件。

安全地銷毀視窗。

銷毀物件

銷毀視窗的所有子視窗。

停用視窗。

啟用或停用是否符合檔案拖放事件(OnDropFiles)的資格。

啟用或停用視窗以進行使用者輸入。

尋找目前具有鍵盤焦點的視窗或控制項。

依名稱尋找此視窗的子視窗。

尋找具有給定 id 的第一個視窗。

依標籤尋找視窗。

依名稱尋找視窗(在視窗建構函式或 create/4 函數呼叫中給定)。

調整視窗大小以符合其最佳大小。

fit/1 類似,但調整視窗的內部(虛擬)大小。

凍結視窗,或者換句話說,防止螢幕上發生任何更新,視窗完全不會重新繪製。

將與 DPI 無關的像素值轉換為適用於目前工具組的像素值。

取得此視窗的加速鍵表格。

傳回視窗的背景顏色。

傳回視窗的背景樣式。

此函式傳回視窗可接受的最佳最小尺寸。

傳回目前擷取的視窗。

傳回與視窗相關聯的插入符號。

傳回此視窗的字元高度。

傳回此視窗的平均字元寬度。

傳回視窗子項列表的常數參考。

這是一個為了方便起見而提供的多載成員函數。它與上述函數的唯一不同之處在於它接受的引數。

傳回此視窗所屬的尺寸器,若無則傳回 NULL。

傳回將此視窗的邏輯像素對應到實體像素的比例因子。

傳回與此視窗相關聯的游標。

傳回此視窗所使用顯示器的 DPI。

傳回此視窗使用的 DPI 與標準 DPI 的比率。

傳回相關聯的拖放目標,可能為 NULL。

傳回視窗的額外樣式位元。

傳回此視窗的字型。

傳回視窗的前景顏色。

傳回視窗的祖父視窗,若無則傳回 NULL。

傳回實體視窗的平台特定控制代碼。

取得將用作此視窗內容相關說明的說明文字。

傳回視窗的識別碼。

從任何視窗取得標籤的通用方式,用於識別目的。

傳回視窗的最大尺寸。

傳回視窗的最小尺寸,向尺寸器配置機制指示這是所需的最小尺寸。

傳回視窗的名稱。

傳回視窗的父視窗,若無則傳回 NULL。

這會取得視窗的像素位置,相對於子視窗的父視窗,或相對於最上層視窗的顯示原點。

傳回視窗的位置和尺寸,格式為 {X,Y,W,H} 物件。

傳回螢幕座標中的視窗位置,無論視窗是子視窗還是最上層視窗。

傳回視窗在螢幕上的位置和尺寸,格式為 {X,Y,W,H} 物件。

傳回內建捲軸位置。

傳回內建捲軸範圍。

傳回內建捲軸拇指的大小。

請參閱 GetSize(int,int) 多載以取得更多資訊。

傳回先前呼叫 setSizer/3 與視窗相關聯的尺寸器,若無則傳回 NULL。

取得字串的尺寸,如同使用目前選取的字型在視窗上繪製一樣。

如果視窗使用系統佈景主題繪製其背景,則傳回 true。

取得相關聯的工具提示,若無則傳回 NULL。

取得字串的尺寸,如同使用目前選取的字型在視窗上繪製一樣。

這會取得視窗的虛擬像素大小。

取得傳遞至建構函式或 create/4 方法的視窗樣式。

傳回先前傳遞至 setWindowVariant/2 的值。

如果此視窗目前具有滑鼠擷取,則傳回 true。

如果此視窗目前具有此方向的捲軸,則傳回 true。

如果此視窗背景是透明的 (例如,對於 wxStaticText),並應顯示父視窗背景,則傳回 true。

等同於呼叫 show/2(false)。

此函式在視窗建立期間呼叫 (或在自訂控制項的情況下應該呼叫),以智慧方式設定視窗視覺屬性,即字型和前景及背景顏色。

傳送 wxEVT\_INIT\_DIALOG 事件,其處理常式通常會透過驗證器將資料傳輸到對話方塊。

重設快取的最佳尺寸值,以便下次需要時重新計算。

如果系統會對視窗內容進行雙緩衝處理,則傳回 true,也就是說,在視窗上進行的任何繪圖實際上都是在暫時的備份表面上完成的,並且稍後會一次性傳輸到螢幕。

如果視窗已啟用,則傳回 true,也就是說,如果它接受使用者輸入,否則傳回 false。

這是一個為了方便起見而提供的多載成員函數。它與上述函數的唯一不同之處在於它接受的引數。

如果自上次重繪以來,指定的點或矩形區域已公開,則傳回 true。

這是一個為了方便起見而提供的多載成員函數。它與上述函數的唯一不同之處在於它接受的引數。

如果視窗目前因呼叫 freeze/1 而凍結,則傳回 true。

如果視窗已保留,則傳回 true,否則傳回 false。

如果視窗已顯示,則傳回 true,如果已隱藏,則傳回 false。

如果視窗在螢幕上實際可見,則傳回 true,也就是說,它已顯示,並且其所有父視窗(直到最上層視窗)也都顯示。

如果指定的視窗是最上層視窗,則傳回 true。

使用相關聯的尺寸器配置此視窗的子項。

scrollLines/2 (1) 相同。

scrollLines/2 (-1) 相同。

將視窗降到視窗階層 (Z 順序) 的底部。

將視窗移動到指定的位置。

將視窗移動到指定的位置。

在指定的 win 之後,在 Tab 導覽順序中移動此視窗。

moveAfterInTabOrder/2 相同,但它會將此視窗插入到 win 之前,而不是放在其後。

從此視窗開始執行鍵盤導覽動作。

預設建構函式。

建構一個視窗,可以是框架、對話方塊或任何其他非控制視窗的子項。

scrollPages/2 (1) 相同。

scrollPages/2 (-1) 相同。

在相對於此視窗的指定座標處彈出指定的選單,並在使用者關閉選單時傳回控制權。

這是一個為了方便起見而提供的多載成員函數。它與上述函數的唯一不同之處在於它接受的引數。

將視窗提升到視窗階層 (Z 順序) 的頂部。

導致重新繪製此視窗及其所有子項 (除了未實作此功能的 wxGTK1 之下)。

重新繪製指定矩形的內容:只會重新繪製其內的區域。

釋放使用 captureMouse/1 擷取的滑鼠輸入。

移除子視窗。

重新指定視窗的父視窗,也就是說,視窗會從其目前的父視窗中移除 (例如)。

從螢幕轉換為用戶端視窗座標。

從螢幕轉換為用戶端視窗座標。

將視窗向下捲動指定的行數 (如果 lines 為正值) 或向上捲動。

將視窗向下捲動指定的頁數 (如果 pages 為正值) 或向上捲動。

實際捲動視窗中的像素,並相應地移動子視窗。

設定此視窗的加速鍵表格。

判斷在調整視窗大小時是否會自動呼叫 layout/1 函式。

設定視窗的背景顏色。

設定視窗的背景樣式。

設定與視窗相關聯的插入符號。

這是一個為了方便起見而提供的多載成員函數。它與上述函數的唯一不同之處在於它接受的引數。

這會設定視窗用戶端區域的像素大小。

wxSizer 內部使用,用於通知視窗目前由指定的 sizer 管理。

設定視窗的游標。

如果系統支援,開啟或關閉視窗的雙緩衝。

將一個拖放目標與此視窗關聯。

設定視窗的額外樣式位元。

設定此視窗以接收鍵盤輸入。

當使用者從鍵盤將焦點給予此視窗時(例如使用 TAB 鍵),wxWidgets 鍵盤導覽程式碼會呼叫此函式。

設定此視窗的字型。

設定視窗的前景顏色。

設定要用於此視窗內容相關說明的說明文字。

設定視窗的識別碼。

設定視窗的標籤。

設定視窗的最大尺寸,以向 sizer 版面配置機制指示這是最大可能的尺寸。

設定視窗的最小尺寸,以向 sizer 版面配置機制指示這是最小所需的尺寸。

設定視窗的名稱。

設定視窗的背景顏色,但防止此顏色被此視窗的子視窗繼承。

設定視窗的字型,但防止此字型被此視窗的子視窗繼承。

設定視窗的前景顏色,但防止此顏色被此視窗的子視窗繼承。

設定內建捲軸的屬性。

設定其中一個內建捲軸的位置。

這是一個為了方便起見而提供的多載成員函數。它與上述函數的唯一不同之處在於它接受的引數。

設定視窗的像素大小。

設定視窗的像素大小。

不建議將此函式用於非最上層視窗(例如 wxDialogwxFrame)的視窗。

這是一個為了方便起見而提供的多載成員函數。它與上述函數的唯一不同之處在於它接受的引數。

設定視窗使用指定的版面配置 sizer。

將 sizer 與視窗關聯,並據此設定視窗的大小和最小尺寸。

此函式告知視窗是否應該使用系統的「主題」程式碼來繪製視窗的背景,而不是使用其自身的背景繪製程式碼。

這是一個為了方便起見而提供的多載成員函數。它與上述函數的唯一不同之處在於它接受的引數。

設定視窗的透明度。

這是一個為了方便起見而提供的多載成員函數。它與上述函數的唯一不同之處在於它接受的引數。

設定視窗的虛擬像素大小。

請參閱 setWindowStyleFlag/2 以取得更多資訊。

設定視窗的樣式。

選擇要使用的視窗顯示的不同變體。

從此處傳回 true,以允許此視窗的顏色由 inheritAttributes/1 變更。

等同於 show(This, [])

顯示或隱藏視窗。

在先前呼叫 freeze/1 之後,重新啟用視窗更新。

將目前工具組的像素值轉換為與 DPI 無關的像素值。

將子控制項的值傳輸到其驗證器所指定的資料區域。

將值從其驗證器所指定的資料區域傳輸到子控制項。

呼叫此方法會立即重新繪製視窗的失效區域及其所有子視窗(這通常只會在控制流程返回事件迴圈時發生)。

此函式會將一個或多個 wxUpdateUIEvent 傳送至視窗。

使用其驗證器來驗證子控制項的目前值。

將指標移動到視窗上的指定位置。

型別

-type wxWindow() :: wx:wx_object().

函式

此函式的連結

cacheBestSize(This, Size)

檢視原始碼
-spec cacheBestSize(This, Size) -> ok when This :: wxWindow(), Size :: {W :: integer(), H :: integer()}.

設定快取的最佳大小值。

請參閱:getBestSize/1

此函式的連結

canSetTransparent(This)

檢視原始碼
-spec canSetTransparent(This) -> boolean() when This :: wxWindow().

如果系統支援透明視窗且呼叫 setTransparent/2 可能會成功,則傳回 true。

如果此函式傳回 false,則目前系統絕對不支援透明視窗。

-spec captureMouse(This) -> ok when This :: wxWindow().

將所有滑鼠輸入導向此視窗。

呼叫 releaseMouse/1 以釋放捕獲。

請注意,wxWidgets 維護已捕獲滑鼠的視窗堆疊,當滑鼠釋放時,捕獲會返回到先前捕獲它的視窗,並且只有在沒有先前的視窗時才會真正釋放。特別是,這表示您必須釋放滑鼠的次數與捕獲的次數相同,除非視窗收到 wxMouseCaptureLostEvent 事件。

任何在某些操作開始時捕獲滑鼠的應用程式都必須處理 wxMouseCaptureLostEvent,並且在收到事件時取消此操作。事件處理常式不得重新捕獲滑鼠。

請參閱

-spec center(This) -> ok when This :: wxWindow().

相當於 center(This, [])

-spec center(This, [Option]) -> ok when This :: wxWindow(), Option :: {dir, integer()}.

相當於:centre/2

-spec centerOnParent(This) -> ok when This :: wxWindow().

相當於 centerOnParent(This, [])

此函式的連結

centerOnParent(This, Options)

檢視原始碼
-spec centerOnParent(This, [Option]) -> ok when This :: wxWindow(), Option :: {dir, integer()}.

相當於:centreOnParent/2

-spec centre(This) -> ok when This :: wxWindow().

相當於 centre(This, [])

-spec centre(This, [Option]) -> ok when This :: wxWindow(), Option :: {dir, integer()}.

將視窗置中。

備註:如果視窗是最上層視窗(即沒有父視窗),則無論如何它都會相對於螢幕居中。

請參閱:center/2

-spec centreOnParent(This) -> ok when This :: wxWindow().

相當於 centreOnParent(This, [])

-spec centreOnParent(This, [Option]) -> ok when This :: wxWindow(), Option :: {dir, integer()}.

將視窗在其父視窗上置中。

這是 centre/2 更易讀的同義詞。

備註:此方法提供了一種將最上層視窗置於其父視窗上方而不是整個螢幕上方的方式。如果沒有父視窗或視窗不是最上層視窗,則行為與 centre/2 相同。

請參閱:wxTopLevelWindow:centreOnScreen/2

-spec clearBackground(This) -> ok when This :: wxWindow().

透過使用目前的背景色彩填滿視窗來清除視窗。

不會導致產生清除背景事件。

請注意,這會使用 wxClientDC 在視窗上繪圖,並且在針對此視窗也同時在 wxPaintDC 上繪圖時,這樣做的結果是不確定的。因此,此方法不應從 EVT_PAINT 處理常式中使用,只需在您已經在那裡使用的 wxPaintDC 上使用 wxDC:clear/1 即可。

此函式的連結

clientToScreen(This, Pt)

檢視原始碼
-spec clientToScreen(This, Pt) -> {X :: integer(), Y :: integer()}
                        when This :: wxWindow(), Pt :: {X :: integer(), Y :: integer()}.

從相對於此視窗的座標轉換為螢幕座標。

此函式的連結

clientToScreen(This, X, Y)

檢視原始碼
-spec clientToScreen(This, X, Y) -> {X :: integer(), Y :: integer()}
                        when This :: wxWindow(), X :: integer(), Y :: integer().

從相對於此視窗的座標轉換為螢幕座標。

-spec close(This) -> boolean() when This :: wxWindow().

相當於 close(This, [])

-spec close(This, [Option]) -> boolean() when This :: wxWindow(), Option :: {force, boolean()}.

此函數只是產生一個 wxCloseEvent,其處理常式通常會嘗試關閉視窗。

但是,它本身不會關閉視窗。

傳回:如果事件已處理且未否決,則為 true,否則為 false。

備註:Close 會呼叫視窗的關閉處理常式,提供視窗選擇是否要銷毀視窗的機會。通常它只與最上層視窗(wxFramewxDialog 類別)一起使用,因為其他視窗不應有任何特殊的 OnClose() 邏輯。關閉處理常式應該檢查視窗是否正在被強制刪除,使用 wxCloseEvent:canVeto/1,在這種情況下,它應該使用 'Destroy'/1 銷毀視窗。請注意,呼叫 Close 並不保證視窗會被銷毀;但它提供了一種模擬手動關閉視窗的方式,這可能會或可能不會通過銷毀視窗來實作。wxDialog::OnCloseWindow 的預設實作不一定會刪除對話方塊,因為它只會模擬一個 wxID_CANCEL 事件,該事件由適當的按鈕事件處理常式處理,並且可能會執行任何操作。要保證視窗會被銷毀,請改為呼叫 'Destroy'/1

請參閱

此函式的連結

convertDialogToPixels(This, Sz)

檢視原始碼
-spec convertDialogToPixels(This, Sz) -> {W :: integer(), H :: integer()}
                               when This :: wxWindow(), Sz :: {W :: integer(), H :: integer()}.

這是一個為了方便起見而提供的多載成員函數。它與上述函數的唯一不同之處在於它接受的引數。

此函式的連結

convertPixelsToDialog(This, Sz)

檢視原始碼
-spec convertPixelsToDialog(This, Sz) -> {W :: integer(), H :: integer()}
                               when This :: wxWindow(), Sz :: {W :: integer(), H :: integer()}.

這是一個為了方便起見而提供的多載成員函數。它與上述函數的唯一不同之處在於它接受的引數。

此函式的連結

create(This, Parent, Id)

檢視原始碼
-spec create(This, Parent, Id) -> boolean()
                when This :: wxWindow(), Parent :: wxWindow(), Id :: integer().

相當於 create(This, Parent, Id, [])

-spec create(This, Parent, Id, [Option]) -> boolean()
                when
                    This :: wxWindow(),
                    Parent :: wxWindow(),
                    Id :: integer(),
                    Option ::
                        {pos, {X :: integer(), Y :: integer()}} |
                        {size, {W :: integer(), H :: integer()}} |
                        {style, integer()}.

在建立 C++ 物件之後,建構實際的視窗物件。

wxWindow 類別的非預設建構函式會執行兩項操作:它會初始化 C++ 物件,並且也會在底層圖形工具組中建立視窗物件。create/4 方法可用於稍後執行第二部分,而預設建構函式可用於僅執行第一部分。

請注意,底層視窗必須精確地建立一次,也就是說,如果您使用不執行此操作的預設建構函式,則在您使用視窗之前,必須 呼叫 create/4,如果您使用非預設建構函式,則 不能 呼叫 create/4,因為底層視窗已經建立。

請注意,在建立 C++ 物件本身和對其呼叫 create/4 之間,有可能並且實際上很有用地呼叫物件上的某些方法,例如,在視窗完全初始化之前避免顯示其內容的常見模式是

另請注意,可以建立衍生型別的物件,然後對其呼叫 create/4:這尤其用於 overview_xrc。

此方法的參數與非預設建構函式參數的意義完全相同,請參閱它們的說明。

傳回:如果視窗建立成功,則為 true,如果失敗,則為 false

-spec 'Destroy'(This) -> boolean() when This :: wxWindow().

安全地銷毀視窗。

請使用此函式代替 delete 運算子,因為不同的視窗類別可能會以不同的方式銷毀。當呼叫此函式時,框架和對話方塊不會立即銷毀,而是會新增到一個視窗清單中,以便在閒置時間(在處理完所有視窗事件後)刪除。這可以防止事件傳送到不存在的視窗時發生問題。

傳回:如果視窗已成功刪除,或已新增至等待真正刪除的視窗清單,則為 true。

-spec destroy(This :: wxWindow()) -> ok.

銷毀物件

-spec destroyChildren(This) -> boolean() when This :: wxWindow().

銷毀視窗的所有子視窗。

由解構子自動呼叫。

-spec disable(This) -> boolean() when This :: wxWindow().

停用視窗。

enable/2 Enable(false) 相同。

傳回:如果視窗已停用,則傳回 true;如果視窗在呼叫此函式之前已停用,則傳回 false。

此函式的連結

dragAcceptFiles(This, Accept)

檢視原始碼
-spec dragAcceptFiles(This, Accept) -> ok when This :: wxWindow(), Accept :: boolean().

啟用或停用是否符合檔案拖放事件(OnDropFiles)的資格。

備註:僅在 2.8.9 版之前的 Windows 視窗中提供,自 2.8.10 版起在所有平台上都可用。不能與非 Windows 平台上的 setDropTarget/2 一起使用。

請參閱:setDropTarget/2

-spec enable(This) -> boolean() when This :: wxWindow().

相當於 enable(This, [])

-spec enable(This, [Option]) -> boolean() when This :: wxWindow(), Option :: {enable, boolean()}.

啟用或停用視窗以進行使用者輸入。

請注意,當父視窗停用時,其所有子視窗也會停用,並且當父視窗再次啟用時,它們會再次啟用。

可以先將視窗設定為停用狀態,再對其呼叫此方法,呼叫 create/4 來建立實際底層視窗之前,例如:

傳回值:如果視窗已啟用或停用,則傳回 true;如果未執行任何動作,亦即視窗已處於指定狀態,則傳回 false。

請參閱

-spec findFocus() -> wxWindow().

尋找目前具有鍵盤焦點的視窗或控制項。

備註:請注意,這是一個靜態函式,因此無需 wxWindow 指標即可呼叫。

請參閱: setFocus/1

-spec findWindow(This, Id) -> wxWindow() when This :: wxWindow(), Id :: integer();
                (This, Name) -> wxWindow() when This :: wxWindow(), Name :: unicode:chardata().

依名稱尋找此視窗的子視窗。

如果與自身匹配,可能會傳回 this

請注意,此函式只會搜尋實際子視窗,而不會搜尋使用此視窗作為父視窗的最上層視窗。

-spec findWindowById(Id) -> wxWindow() when Id :: integer().

相當於 findWindowById(Id, [])

此函式的連結

findWindowById(Id, Options)

檢視原始碼
-spec findWindowById(Id, [Option]) -> wxWindow() when Id :: integer(), Option :: {parent, wxWindow()}.

尋找具有給定 id 的第一個視窗。

如果 parent 為 NULL,則會從所有最上層框架和對話方塊開始搜尋;如果為非 NULL,則搜尋範圍會限制在指定的視窗階層中。兩種情況下搜尋都是遞迴的。

請參閱: findWindow/2

傳回值:具有指定 id 的視窗,如果找不到則傳回 NULL。

此函式的連結

findWindowByLabel(Label)

檢視原始碼
-spec findWindowByLabel(Label) -> wxWindow() when Label :: unicode:chardata().

相當於 findWindowByLabel(Label, [])

此函式的連結

findWindowByLabel(Label, Options)

檢視原始碼
-spec findWindowByLabel(Label, [Option]) -> wxWindow()
                           when Label :: unicode:chardata(), Option :: {parent, wxWindow()}.

依標籤尋找視窗。

根據視窗的類型,標籤可能是視窗標題或面板項目標籤。如果 parent 為 NULL,則會從所有最上層框架和對話方塊開始搜尋;如果為非 NULL,則搜尋範圍會限制在指定的視窗階層中。

兩種情況下搜尋都是遞迴的,而且與 findWindow/2 不同,也會遞迴搜尋最上層子視窗。

請參閱: findWindow/2

傳回值:具有指定 label 的視窗,如果找不到則傳回 NULL。

此函式的連結

findWindowByName(Name)

檢視原始碼
-spec findWindowByName(Name) -> wxWindow() when Name :: unicode:chardata().

相當於 findWindowByName(Name, [])

此函式的連結

findWindowByName(Name, Options)

檢視原始碼
-spec findWindowByName(Name, [Option]) -> wxWindow()
                          when Name :: unicode:chardata(), Option :: {parent, wxWindow()}.

依名稱尋找視窗(在視窗建構函式或 create/4 函數呼叫中給定)。

如果 parent 為 NULL,則會從所有最上層框架和對話方塊開始搜尋;如果為非 NULL,則搜尋範圍會限制在指定的視窗階層中。

兩種情況下搜尋都是遞迴的,而且與 findWindow/2 不同,也會遞迴搜尋最上層子視窗。

如果找不到具有此名稱的視窗,則會呼叫 findWindowByLabel/2,也就是說,會先將名稱解譯為 (內部) 名稱,如果失敗,則將其解譯為 (使用者可見) 標籤。由於這種行為可能會令人困惑,因此通常最好直接使用帶有名稱的 findWindow/2 多載或 findWindowByLabel/2

傳回值:具有指定 name 的視窗,如果找不到則傳回 NULL。

-spec fit(This) -> ok when This :: wxWindow().

調整視窗大小以符合其最佳大小。

使用此函式等同於將視窗大小設定為 getBestSize/1 的傳回值。

請注意,與 setSizerAndFit/3 不同,此函式只會變更目前的視窗大小,而不會變更其最小大小。

請參閱: 視窗大小調整概述

-spec fitInside(This) -> ok when This :: wxWindow().

fit/1 類似,但調整視窗的內部(虛擬)大小。

主要用於捲動視窗,以在大小變更 (不會觸發大小事件) 之後重設捲軸,或用於沒有內部尺寸器的捲動視窗。如果沒有子視窗,此函式同樣不會執行任何動作。

-spec freeze(This) -> ok when This :: wxWindow().

凍結視窗,或者換句話說,防止螢幕上發生任何更新,視窗完全不會重新繪製。

必須呼叫 thaw/1 才能重新啟用視窗重繪。對這兩個函式的呼叫可以巢狀,但為了確保視窗再次正確重繪,您必須將其解凍的次數與凍結的次數完全相同。

如果視窗有任何子視窗,它們也會被遞迴凍結。

此方法適用於視覺外觀最佳化 (例如,在 wxGTK 下將許多大型文字連續插入到 wxTextCtrl 中之前,最好使用它),但並非在所有平台上或所有控制項上都已實作,因此它主要只是給 wxWidgets 的提示,而不是強制性指令。

請參閱

-spec fromDIP(D, W) -> integer() when D :: integer(), W :: wxWindow();
             (Sz, W) -> {W :: integer(), H :: integer()}
                 when Sz :: {W :: integer(), H :: integer()}, W :: wxWindow();
             (This, D) -> integer() when This :: wxWindow(), D :: integer();
             (This, Sz) -> {W :: integer(), H :: integer()}
                 when This :: wxWindow(), Sz :: {W :: integer(), H :: integer()}.

將與 DPI 無關的像素值轉換為適用於目前工具組的像素值。

與 DPI 無關的像素只是標準 96 DPI 解析度下的像素。為了在高解析度下保持相同的物理大小,物理像素值必須按 getDPIScaleFactor/1 縮放,但此縮放可能已由底層工具組 (GTK+、Cocoa 等) 自動完成。只有在較低層級工具組尚未完成轉換時,此方法才會執行轉換,因此透過對像素值使用此方法,您可以保證對應元素的物理大小在所有平台的所有解析度下都保持相同。例如,為了避免在高 DPI 螢幕上使用微小的點陣圖,您應該使用以下方法,而不是建立硬式編碼為 32 像素大小的點陣圖。

請注意,只有在使用硬式編碼像素值時才需要此函式。如果大小已經基於與 DPI 無關的單位 (例如對話方塊單位),或者如果您依賴控制項的自動最佳大小判斷並使用尺寸器來佈局它們,則不需要此函式。

另請注意,如果 sz 的任一元件具有 -1 的特殊值,則無論目前的 DPI 如何,都會傳回未變更的值,以保留 wxWidgets API 中 -1 的特殊值 (它通常用來表示「未指定」)。

自:3.1.0

此函式的連結

getAcceleratorTable(This)

檢視原始碼
-spec getAcceleratorTable(This) -> wxAcceleratorTable:wxAcceleratorTable() when This :: wxWindow().

取得此視窗的加速鍵表格。

請參閱 wxAcceleratorTable

此函式的連結

getBackgroundColour(This)

檢視原始碼
-spec getBackgroundColour(This) -> wx:wx_colour4() when This :: wxWindow().

傳回視窗的背景顏色。

請參閱

此函式的連結

getBackgroundStyle(This)

檢視原始碼
-spec getBackgroundStyle(This) -> wx:wx_enum() when This :: wxWindow().

傳回視窗的背景樣式。

請參閱

-spec getBestSize(This) -> {W :: integer(), H :: integer()} when This :: wxWindow().

此函式傳回視窗可接受的最佳最小尺寸。

例如,對於靜態控制項,它將是控制項標籤未被截斷的最小大小。對於包含子視窗的視窗 (通常是 wxPanel),此函式傳回的大小將與呼叫 fit/1 後視窗的大小相同。

覆寫虛擬 DoGetBestSize() (在 wx 中未實作),或者更好的是,由於它通常更方便,請覆寫 DoGetBestClientSize() (在 wx 中未實作),以便在編寫您自己的自訂視窗類別時變更此公用非虛擬方法傳回的值。

請注意,最佳大小會遵守為視窗明確設定的最小和最大大小 (如果有的話)。因此,即使某些視窗認為它需要水平 200 像素,使用寬度 100 呼叫 setMaxSize/2 也會確保 getBestSize/1 傳回的最大寬度為 100 像素。

請參閱

-spec getCapture() -> wxWindow().

傳回目前擷取的視窗。

請參閱

-spec getCaret(This) -> wxCaret:wxCaret() when This :: wxWindow().

傳回與視窗相關聯的插入符號。

-spec getCharHeight(This) -> integer() when This :: wxWindow().

傳回此視窗的字元高度。

-spec getCharWidth(This) -> integer() when This :: wxWindow().

傳回此視窗的平均字元寬度。

-spec getChildren(This) -> [wxWindow()] when This :: wxWindow().

傳回視窗子項列表的常數參考。

wxWindowList 是一個型別安全的 wxList 類別,其元素類型為 wxWindow*

-spec getClientSize(This) -> {W :: integer(), H :: integer()} when This :: wxWindow().

這是一個為了方便起見而提供的多載成員函數。它與上述函數的唯一不同之處在於它接受的引數。

此函式的連結

getContainingSizer(This)

檢視原始碼
-spec getContainingSizer(This) -> wxSizer:wxSizer() when This :: wxWindow().

傳回此視窗所屬的尺寸器,若無則傳回 NULL。

此函式的連結

getContentScaleFactor(This)

檢視原始碼
-spec getContentScaleFactor(This) -> number() when This :: wxWindow().

傳回將此視窗的邏輯像素對應到實體像素的比例因子。

此函式可用於可移植地判斷給定大小的視窗中的物理像素數,方法是將視窗大小乘以從中傳回的值。也就是說,它會傳回將視窗座標轉換為「內容檢視」座標的因數,其中檢視可以只是顯示 wxBitmapwxGLCanvas 或任何其他在螢幕上呈現任意「內容」的視窗。

對於不執行任何像素對應的平台 (也就是邏輯像素和物理像素相同),此函式始終傳回 1.0,因此原則上使用此函式是不必要的,並且可以透過使用 wxHAVE_DPI_INDEPENDENT_PIXELS 定義的預處理器檢查來避免,但是通常在所有平台下無條件地使用此函式會更簡單,因此更受歡迎。

注意:此函式的目前行為與 wxWidgets 3.0 相容,但與其在 3.1.0 到 3.1.3 版本中的行為不同,在這些版本中,它傳回的值與 getDPIScaleFactor/1 相同。如果您需要即使對於沒有 wxHAVE_DPI_INDEPENDENT_PIXELS 的平台 (例如 wxMSW) 也使用大於 1.0 的縮放因數,請使用其他函式。

自:2.9.5

-spec getCursor(This) -> wxCursor:wxCursor() when This :: wxWindow().

傳回與此視窗相關聯的游標。

請參閱: setCursor/2

-spec getDPI(This) -> {W :: integer(), H :: integer()} when This :: wxWindow().

傳回此視窗所使用顯示器的 DPI。

對於支援每個監視器 DPI 值的系統 (例如 Microsoft Windows 10),不同視窗傳回的值可能不同。

如果 DPI 不可用,則會傳回 {Width,Height} 物件。

請參閱: wxDisplay:getPPI/1

自:3.1.3

此函式的連結

getDPIScaleFactor(This)

檢視原始碼
-spec getDPIScaleFactor(This) -> number() when This :: wxWindow().

傳回此視窗使用的 DPI 與標準 DPI 的比率。

傳回值對於標準 DPI 螢幕為 1,對於「200% 縮放」為 2,並且與 getContentScaleFactor/1 不同,在所有平台下都相同。

使用 DPI 縮放時,應使用此因數來增加圖示和類似視窗的大小,這些視窗的最佳大小並非基於文字度量。

例如,如果內容縮放因數為 1.0,程式可能會載入 32 像素點陣圖;如果為 2.0 或更大,則可能會載入相同點陣圖的 64 像素版本。

請注意,此方法應 用於以像素表示的視窗大小,因為在某些平台下,它們已經由底層工具組按此因數縮放。請改用 fromDIP/2 來處理任何與視窗相關的事物。

自:3.1.4

-spec getDropTarget(This) -> wx:wx_object() when This :: wxWindow().

傳回相關聯的拖放目標,可能為 NULL。

請參閱

-spec getExtraStyle(This) -> integer() when This :: wxWindow().

傳回視窗的額外樣式位元。

-spec getFont(This) -> wxFont:wxFont() when This :: wxWindow().

傳回此視窗的字型。

請參閱: setFont/2

此函式的連結

getForegroundColour(This)

檢視原始碼
-spec getForegroundColour(This) -> wx:wx_colour4() when This :: wxWindow().

傳回視窗的前景顏色。

備註:前景色含義因視窗類別而異;它可能是文字顏色或其他顏色,也可能完全不使用。

請參閱

-spec getGrandParent(This) -> wxWindow() when This :: wxWindow().

傳回視窗的祖父視窗,若無則傳回 NULL。

-spec getHandle(This) -> integer() when This :: wxWindow().

傳回實體視窗的平台特定控制代碼。

將其轉換為適當的控制碼,例如 Windows 的 HWND、Motif 的 Widget 或 GTK 的 GtkWidget

-spec getHelpText(This) -> unicode:charlist() when This :: wxWindow().

取得將用作此視窗內容相關說明的說明文字。

請注意,文字實際上是由目前的 wxHelpProvider (在 wx 中未實作) 實作儲存,而不是儲存在視窗物件本身中。

請參閱: setHelpText/2

-spec getId(This) -> integer() when This :: wxWindow().

傳回視窗的識別碼。

備註:每個視窗都有一個整數識別碼。如果應用程式未提供識別碼 (或預設 wxID_ANY),則會產生一個具有負值的唯一識別碼。

請參閱

-spec getLabel(This) -> unicode:charlist() when This :: wxWindow().

從任何視窗取得標籤的通用方式,用於識別目的。

備註:此函式的解譯因類別而異。對於框架和對話方塊,傳回的值是標題。對於按鈕或靜態文字控制項,它是按鈕文字。此函式對於需要依名稱識別視窗的中繼程式 (例如測試工具或特殊需求存取程式) 非常有用。

-spec getMaxSize(This) -> {W :: integer(), H :: integer()} when This :: wxWindow().

傳回視窗的最大尺寸。

這向尺寸器佈局機制表示這是最大可能大小,以及使用 setSize/6 可設定的視窗大小上限。

請參閱: 視窗大小調整概述

-spec getMinSize(This) -> {W :: integer(), H :: integer()} when This :: wxWindow().

傳回視窗的最小尺寸,向尺寸器配置機制指示這是所需的最小尺寸。

此方法通常只會傳回由 setMinSize/2 設定的值,但可以覆寫以按需執行計算。

請參閱: 視窗大小調整概述

-spec getName(This) -> unicode:charlist() when This :: wxWindow().

傳回視窗的名稱。

備註:不保證此名稱是唯一的;程式設計人員應在視窗建構函式中或透過 setName/2 提供適當的名稱。

請參閱: setName/2

-spec getParent(This) -> wxWindow() when This :: wxWindow().

傳回視窗的父視窗,若無則傳回 NULL。

-spec getPosition(This) -> {X :: integer(), Y :: integer()} when This :: wxWindow().

這會取得視窗的像素位置,相對於子視窗的父視窗,或相對於最上層視窗的顯示原點。

請參閱: getScreenPosition/1

-spec getRect(This) -> {X :: integer(), Y :: integer(), W :: integer(), H :: integer()}
                 when This :: wxWindow().

傳回視窗的位置和尺寸,格式為 {X,Y,W,H} 物件。

請參閱: getScreenRect/1

此函式的連結

getScreenPosition(This)

檢視原始碼
-spec getScreenPosition(This) -> {X :: integer(), Y :: integer()} when This :: wxWindow().

傳回螢幕座標中的視窗位置,無論視窗是子視窗還是最上層視窗。

請參閱: getPosition/1

-spec getScreenRect(This) -> {X :: integer(), Y :: integer(), W :: integer(), H :: integer()}
                       when This :: wxWindow().

傳回視窗在螢幕上的位置和尺寸,格式為 {X,Y,W,H} 物件。

請參閱: getRect/1

此函式的連結

getScrollPos(This, Orientation)

檢視原始碼
-spec getScrollPos(This, Orientation) -> integer() when This :: wxWindow(), Orientation :: integer().

傳回內建捲軸位置。

請參閱: setScrollbar/6

此函式的連結

getScrollRange(This, Orientation)

檢視原始碼
-spec getScrollRange(This, Orientation) -> integer() when This :: wxWindow(), Orientation :: integer().

傳回內建捲軸範圍。

請參閱: setScrollbar/6

此函式的連結

getScrollThumb(This, Orientation)

檢視原始碼
-spec getScrollThumb(This, Orientation) -> integer() when This :: wxWindow(), Orientation :: integer().

傳回內建捲軸拇指的大小。

請參閱: setScrollbar/6

-spec getSize(This) -> {W :: integer(), H :: integer()} when This :: wxWindow().

請參閱 GetSize(int,int) 多載以取得更多資訊。

-spec getSizer(This) -> wxSizer:wxSizer() when This :: wxWindow().

傳回先前呼叫 setSizer/3 與視窗相關聯的尺寸器,若無則傳回 NULL。

此函式的連結

getTextExtent(This, String)

檢視原始碼
-spec getTextExtent(This, String) -> Result
                       when
                           Result ::
                               {W :: integer(),
                                H :: integer(),
                                Descent :: integer(),
                                ExternalLeading :: integer()},
                           This :: wxWindow(),
                           String :: unicode:chardata().

等同於 getTextExtent(This, String, [])

-spec getTextExtent(This, String, [Option]) -> Result
                       when
                           Result ::
                               {W :: integer(),
                                H :: integer(),
                                Descent :: integer(),
                                ExternalLeading :: integer()},
                           This :: wxWindow(),
                           String :: unicode:chardata(),
                           Option :: {theFont, wxFont:wxFont()}.

取得字串的尺寸,如同使用目前選取的字型在視窗上繪製一樣。

文字範圍會傳回至 wh 指標中。

-spec getThemeEnabled(This) -> boolean() when This :: wxWindow().

如果視窗使用系統佈景主題繪製其背景,則傳回 true。

請參閱: setThemeEnabled/2

-spec getToolTip(This) -> wxToolTip:wxToolTip() when This :: wxWindow().

取得相關聯的工具提示,若無則傳回 NULL。

-spec getUpdateRegion(This) -> wxRegion:wxRegion() when This :: wxWindow().

取得字串的尺寸,如同使用目前選取的字型在視窗上繪製一樣。

傳回指定視窗哪些部分已損毀的區域。應僅在 wxPaintEvent 處理常式中呼叫。

請參閱: wxRegion

-spec getVirtualSize(This) -> {W :: integer(), H :: integer()} when This :: wxWindow().

這會取得視窗的虛擬像素大小。

預設情況下,它會傳回視窗的用戶端大小,但在呼叫 setVirtualSize/3 後,它會傳回使用該方法設定的大小。

請參閱: 視窗大小調整概述

此函式的連結

getWindowStyleFlag(This)

檢視原始碼
-spec getWindowStyleFlag(This) -> integer() when This :: wxWindow().

取得傳遞至建構函式或 create/4 方法的視窗樣式。

GetWindowStyle() (在 wx 中未實作) 是相同函式的另一個名稱。

此函式的連結

getWindowVariant(This)

檢視原始碼
-spec getWindowVariant(This) -> wx:wx_enum() when This :: wxWindow().

傳回先前傳遞至 setWindowVariant/2 的值。

-spec hasCapture(This) -> boolean() when This :: wxWindow().

如果此視窗目前具有滑鼠擷取,則傳回 true。

請參閱

此函式的連結

hasScrollbar(This, Orient)

檢視原始碼
-spec hasScrollbar(This, Orient) -> boolean() when This :: wxWindow(), Orient :: integer().

如果此視窗目前具有此方向的捲軸,則傳回 true。

即使相同方向的 CanScroll() (在 wx 中未實作) 傳回 true,此方法也可能傳回 false,但如果 CanScroll() (在 wx 中未實作) 傳回 false,也就是說,完全未啟用此方向的捲動,則 hasScrollbar/2 也始終會傳回 false。

此函式的連結

hasTransparentBackground(This)

檢視原始碼
-spec hasTransparentBackground(This) -> boolean() when This :: wxWindow().

如果此視窗背景是透明的 (例如,對於 wxStaticText),並應顯示父視窗背景,則傳回 true。

這個方法主要由程式庫內部使用,您通常不需要呼叫它。但是,您可能需要在您的 wxWindow 衍生類別中覆寫它,以確保背景正確繪製。

-spec hide(This) -> boolean() when This :: wxWindow().

等同於呼叫 show/2(false)。

此函式的連結

inheritAttributes(This)

檢視原始碼
-spec inheritAttributes(This) -> ok when This :: wxWindow().

此函式在視窗建立期間呼叫 (或在自訂控制項的情況下應該呼叫),以智慧方式設定視窗視覺屬性,即字型和前景及背景顏色。

「智慧地」指的是以下意思:預設情況下,所有視窗都使用它們自己的 GetClassDefaultAttributes()(wx 中未實作)預設屬性。但是,如果某些父視窗的屬性被明確地(也就是說,使用 setFont/2 而不是 setOwnFont/2)更改,並且如果此視窗本身未明確設定對應的屬性,則此視窗會採用與父視窗相同的值。此外,如果視窗覆寫 shouldInheritColours/1 以傳回 false,則無論如何都不會更改顏色,可能只會更改字型。

這個相當複雜的邏輯是為了適應不同的使用情境。最常見的情境是當使用所有預設屬性時,在這種情況下,不應繼承任何內容,因為在現代 GUI 中,不同的控制項使用與其兄弟不同的字型(和顏色),因此它們無法從父視窗繼承相同的值。但是,也認為允許透過僅更改其共同父視窗的字型或顏色來一次更改所有子視窗的屬性是可取的,因此在這種情況下,我們會繼承父視窗的屬性。

-spec initDialog(This) -> ok when This :: wxWindow().

傳送 wxEVT\_INIT\_DIALOG 事件,其處理常式通常會透過驗證器將資料傳輸到對話方塊。

此函式的連結

invalidateBestSize(This)

檢視原始碼
-spec invalidateBestSize(This) -> ok when This :: wxWindow().

重設快取的最佳尺寸值,以便下次需要時重新計算。

請參閱:cacheBestSize/2

此函式的連結

isDoubleBuffered(This)

檢視原始碼
-spec isDoubleBuffered(This) -> boolean() when This :: wxWindow().

如果系統會對視窗內容進行雙緩衝處理,則傳回 true,也就是說,在視窗上進行的任何繪圖實際上都是在暫時的備份表面上完成的,並且稍後會一次性傳輸到螢幕。

請參閱:wxBufferedDC

-spec isEnabled(This) -> boolean() when This :: wxWindow().

如果視窗已啟用,則傳回 true,也就是說,如果它接受使用者輸入,否則傳回 false。

請注意,即使此視窗本身未明確停用,當其父視窗之一被停用時,此方法也可能傳回 false。若要取得此視窗的固有狀態,請使用 IsThisEnabled()(wx 中未實作)。

請參閱:enable/2

-spec isExposed(This, Pt) -> boolean() when This :: wxWindow(), Pt :: {X :: integer(), Y :: integer()};
               (This, Rect) -> boolean()
                   when
                       This :: wxWindow(),
                       Rect :: {X :: integer(), Y :: integer(), W :: integer(), H :: integer()}.

這是一個為了方便起見而提供的多載成員函數。它與上述函數的唯一不同之處在於它接受的引數。

-spec isExposed(This, X, Y) -> boolean() when This :: wxWindow(), X :: integer(), Y :: integer().

如果自上次重繪以來,指定的點或矩形區域已公開,則傳回 true。

在繪製事件處理程式中呼叫此方法,可透過僅重新繪製已顯示的區域來最佳化重新繪製。

此函式的連結

isExposed(This, X, Y, W, H)

檢視原始碼
-spec isExposed(This, X, Y, W, H) -> boolean()
                   when
                       This :: wxWindow(),
                       X :: integer(),
                       Y :: integer(),
                       W :: integer(),
                       H :: integer().

這是一個為了方便起見而提供的多載成員函數。它與上述函數的唯一不同之處在於它接受的引數。

-spec isFrozen(This) -> boolean() when This :: wxWindow().

如果視窗目前因呼叫 freeze/1 而凍結,則傳回 true。

請參閱

-spec isRetained(This) -> boolean() when This :: wxWindow().

如果視窗已保留,則傳回 true,否則傳回 false。

備註:保留視窗僅在 X 平台上可用。

-spec isShown(This) -> boolean() when This :: wxWindow().

如果視窗已顯示,則傳回 true,如果已隱藏,則傳回 false。

請參閱:isShownOnScreen/1

-spec isShownOnScreen(This) -> boolean() when This :: wxWindow().

如果視窗在螢幕上實際可見,則傳回 true,也就是說,它已顯示,並且其所有父視窗(直到最上層視窗)也都顯示。

請參閱:isShown/1

-spec isTopLevel(This) -> boolean() when This :: wxWindow().

如果指定的視窗是最上層視窗,則傳回 true。

目前,所有框架和對話方塊都被視為頂層視窗(即使它們有父視窗)。

-spec layout(This) -> boolean() when This :: wxWindow().

使用相關聯的尺寸器配置此視窗的子項。

如果此視窗尚未關聯尺寸調整器(請參閱 setSizer/3),則此函式不會執行任何動作,除非這是頂層視窗(請參閱 layout/1)。

請注意,如果視窗具有相關聯的尺寸調整器(或者如果已明確呼叫具有 true 引數的 setAutoLayout/2),則當視窗大小變更時,會自動呼叫此方法,以確保其始終正確佈局。

請參閱: 視窗大小調整概述

傳回:始終傳回 true,傳回值無用。

-spec lineDown(This) -> boolean() when This :: wxWindow().

scrollLines/2 (1) 相同。

-spec lineUp(This) -> boolean() when This :: wxWindow().

scrollLines/2 (-1) 相同。

-spec lower(This) -> ok when This :: wxWindow().

將視窗降到視窗階層 (Z 順序) 的底部。

備註:此函式僅適用於 wxTopLevelWindow 衍生類別。

請參閱:raise/1

-spec move(This, Pt) -> ok when This :: wxWindow(), Pt :: {X :: integer(), Y :: integer()}.

等同於 move(This, Pt, [])

-spec move(This, X, Y) -> ok when This :: wxWindow(), X :: integer(), Y :: integer();
          (This, Pt, [Option]) -> ok
              when
                  This :: wxWindow(),
                  Pt :: {X :: integer(), Y :: integer()},
                  Option :: {flags, integer()}.

將視窗移動到指定的位置。

備註:setSize/6 的實作也可以隱式實作 move/4 函式,該函式在基本 wxWindow 類別中定義為呼叫

請參閱:setSize/6

-spec move(This, X, Y, [Option]) -> ok
              when This :: wxWindow(), X :: integer(), Y :: integer(), Option :: {flags, integer()}.

將視窗移動到指定的位置。

備註:SetSize 的實作也可以隱式實作 move/4 函式,該函式在基本 wxWindow 類別中定義為呼叫

請參閱:setSize/6

此函式的連結

moveAfterInTabOrder(This, Win)

檢視原始碼
-spec moveAfterInTabOrder(This, Win) -> ok when This :: wxWindow(), Win :: wxWindow().

在指定的 win 之後,在 Tab 導覽順序中移動此視窗。

這表示當使用者在另一個視窗上按下 TAB 鍵時,焦點會切換到此視窗。

預設的 Tab 順序與建立順序相同,此函式和 moveBeforeInTabOrder/2 允許在建立所有視窗後變更它。

此函式的連結

moveBeforeInTabOrder(This, Win)

檢視原始碼
-spec moveBeforeInTabOrder(This, Win) -> ok when This :: wxWindow(), Win :: wxWindow().

moveAfterInTabOrder/2 相同,但它會將此視窗插入到 win 之前,而不是放在其後。

-spec new() -> wxWindow().

預設建構函式。

-spec new(Parent, Id) -> wxWindow() when Parent :: wxWindow(), Id :: integer().

等同於 new(Parent, Id, [])

-spec new(Parent, Id, [Option]) -> wxWindow()
             when
                 Parent :: wxWindow(),
                 Id :: integer(),
                 Option ::
                     {pos, {X :: integer(), Y :: integer()}} |
                     {size, {W :: integer(), H :: integer()}} |
                     {style, integer()}.

建構一個視窗,可以是框架、對話方塊或任何其他非控制視窗的子項。

-spec pageDown(This) -> boolean() when This :: wxWindow().

scrollPages/2 (1) 相同。

-spec pageUp(This) -> boolean() when This :: wxWindow().

scrollPages/2 (-1) 相同。

-spec popupMenu(This, Menu) -> boolean() when This :: wxWindow(), Menu :: wxMenu:wxMenu().

等同於 popupMenu(This, Menu, [])

-spec popupMenu(This, Menu, [Option]) -> boolean()
                   when
                       This :: wxWindow(),
                       Menu :: wxMenu:wxMenu(),
                       Option :: {pos, {X :: integer(), Y :: integer()}}.

在相對於此視窗的指定座標處彈出指定的選單,並在使用者關閉選單時傳回控制權。

如果選取選單項目,則會產生對應的選單事件,並會照常處理。如果未指定座標,則會使用目前滑鼠游標的位置。

menu 是要彈出的選單。

選單將出現的位置可以指定為 {X,Y} pos 或兩個整數(xy)。

請注意,此函式會在顯示選單之前將焦點切換到此視窗。

備註:在彈出選單之前,會呼叫 wxMenu::UpdateUI(wx 中未實作),以確保選單項目處於正確的狀態。選單不會由視窗刪除。建議在回應滑鼠點擊呼叫 PopupMenu 時,不要明確指定座標,因為某些連接埠(即 wxGTK)可以在這種情況下更好地定位選單。

請參閱:wxMenu

此函式的連結

popupMenu(This, Menu, X, Y)

檢視原始碼
-spec popupMenu(This, Menu, X, Y) -> boolean()
                   when This :: wxWindow(), Menu :: wxMenu:wxMenu(), X :: integer(), Y :: integer().

這是一個為了方便起見而提供的多載成員函數。它與上述函數的唯一不同之處在於它接受的引數。

-spec raise(This) -> ok when This :: wxWindow().

將視窗提升到視窗階層 (Z 順序) 的頂部。

請注意,此函式僅請求視窗管理員將此視窗提升到 Z 順序的頂端。根據其設定,視窗管理員可能會提升視窗、完全不執行此動作,或以其他方式指示要求提升的視窗,例如,如果視窗已最小化,則閃爍其圖示。

備註:此函式僅適用於 wxTopLevelWindow 衍生類別。

請參閱:lower/1

-spec refresh(This) -> ok when This :: wxWindow().

等同於 refresh(This, [])

-spec refresh(This, [Option]) -> ok
                 when
                     This :: wxWindow(),
                     Option ::
                         {eraseBackground, boolean()} |
                         {rect, {X :: integer(), Y :: integer(), W :: integer(), H :: integer()}}.

導致重新繪製此視窗及其所有子項 (除了未實作此功能的 wxGTK1 之下)。

請注意,重新繪製不會立即發生,而是僅在下一個事件迴圈迭代期間發生,如果您需要立即更新視窗,則應改用 update/1

請參閱:refreshRect/3

此函式的連結

refreshRect(This, Rect)

檢視原始碼
-spec refreshRect(This, Rect) -> ok
                     when
                         This :: wxWindow(),
                         Rect :: {X :: integer(), Y :: integer(), W :: integer(), H :: integer()}.

等同於 refreshRect(This, Rect, [])

-spec refreshRect(This, Rect, [Option]) -> ok
                     when
                         This :: wxWindow(),
                         Rect :: {X :: integer(), Y :: integer(), W :: integer(), H :: integer()},
                         Option :: {eraseBackground, boolean()}.

重新繪製指定矩形的內容:只會重新繪製其內的區域。

這與 refresh/2 相同,但具有更簡潔的語法,因為它可以像這樣使用暫時的 {X,Y,W,H} 物件作為引數呼叫:RefreshRect(wxRect(x, y, w, h))

-spec releaseMouse(This) -> ok when This :: wxWindow().

釋放使用 captureMouse/1 擷取的滑鼠輸入。

請參閱

此函式的連結

removeChild(This, Child)

檢視原始碼
-spec removeChild(This, Child) -> ok when This :: wxWindow(), Child :: wxWindow().

移除子視窗。

這會由視窗刪除函式自動呼叫,因此應用程式設計人員不應需要它。請注意,此函式主要用於 wxWidgets 內部,使用者程式碼不應呼叫它。

此函式的連結

reparent(This, NewParent)

檢視原始碼
-spec reparent(This, NewParent) -> boolean() when This :: wxWindow(), NewParent :: wxWindow().

重新指定視窗的父視窗,也就是說,視窗會從其目前的父視窗中移除 (例如)。

wxFrame 中的非標準工具列,然後重新插入另一個工具列。

請注意,目前您需要在重新設定筆記本頁面的父項之前明確呼叫 wxBookCtrlBase:removePage/2

-spec screenToClient(This) -> {X :: integer(), Y :: integer()} when This :: wxWindow().

從螢幕轉換為用戶端視窗座標。

此函式的連結

screenToClient(This, Pt)

檢視原始碼
-spec screenToClient(This, Pt) -> {X :: integer(), Y :: integer()}
                        when This :: wxWindow(), Pt :: {X :: integer(), Y :: integer()}.

從螢幕轉換為用戶端視窗座標。

此函式的連結

scrollLines(This, Lines)

檢視原始碼
-spec scrollLines(This, Lines) -> boolean() when This :: wxWindow(), Lines :: integer().

將視窗向下捲動指定的行數 (如果 lines 為正值) 或向上捲動。

傳回:如果視窗已捲動,則傳回 true,如果視窗已在頂端/底部且未執行任何動作,則傳回 false。

備註:此函式目前僅在 MSW 和 wxGTK 下的 wxTextCtrl 中實作(它也適用於所有平台下的 wxScrolled(wx 中未實作)類別)。

請參閱:scrollPages/2

此函式的連結

scrollPages(This, Pages)

檢視原始碼
-spec scrollPages(This, Pages) -> boolean() when This :: wxWindow(), Pages :: integer().

將視窗向下捲動指定的頁數 (如果 pages 為正值) 或向上捲動。

傳回:如果視窗已捲動,則傳回 true,如果視窗已在頂端/底部且未執行任何動作,則傳回 false。

備註:此函式目前僅在 MSW 和 wxGTK 下實作。

請參閱:scrollLines/2

此函式的連結

scrollWindow(This, Dx, Dy)

檢視原始碼
-spec scrollWindow(This, Dx, Dy) -> ok when This :: wxWindow(), Dx :: integer(), Dy :: integer().

等同於 scrollWindow(This, Dx, Dy, [])

-spec scrollWindow(This, Dx, Dy, [Option]) -> ok
                      when
                          This :: wxWindow(),
                          Dx :: integer(),
                          Dy :: integer(),
                          Option ::
                              {rect, {X :: integer(), Y :: integer(), W :: integer(), H :: integer()}}.

實際捲動視窗中的像素,並相應地移動子視窗。

備註:請注意,您通常可以使用 wxScrolled(wx 中未實作),而不是直接使用此函式。

此函式的連結

setAcceleratorTable(This, Accel)

檢視原始碼
-spec setAcceleratorTable(This, Accel) -> ok
                             when This :: wxWindow(), Accel :: wxAcceleratorTable:wxAcceleratorTable().

設定此視窗的加速鍵表格。

請參閱 wxAcceleratorTable

此函式的連結

setAutoLayout(This, AutoLayout)

檢視原始碼
-spec setAutoLayout(This, AutoLayout) -> ok when This :: wxWindow(), AutoLayout :: boolean().

判斷在調整視窗大小時是否會自動呼叫 layout/1 函式。

此方法由 setSizer/3 隱式呼叫,但如果您使用 SetConstraints()(wx 中未實作),則應手動呼叫它,否則當視窗大小變更時,視窗佈局不會正確更新。

請參閱:setSizer/3

此函式的連結

setBackgroundColour(This, Colour)

檢視原始碼
-spec setBackgroundColour(This, Colour) -> boolean() when This :: wxWindow(), Colour :: wx:wx_colour().

設定視窗的背景顏色。

請注意,與 setForegroundColour/2 一樣,設定原生控制項的背景顏色可能不會影響整個控制項,並且可能完全不受支援,具體取決於控制項和平台。

請參閱 inheritAttributes/1,以瞭解此方法與 setOwnBackgroundColour/2 之間差異的說明。

備註:背景顏色通常由 Windows 下預設的 wxEraseEvent 事件處理程式函式繪製,並在 GTK 下自動繪製。請注意,設定背景顏色不會導致立即重新整理,因此您可能希望在呼叫此函式後呼叫 clearBackground/1refresh/2。如果系統支援主題,則使用此函式會停用嘗試對此視窗使用主題的功能。請謹慎使用,因為通常主題代表使用者選擇用於系統上所有應用程式的外觀。

傳回:如果顏色確實已變更,則傳回 true,如果已設定為此顏色且未執行任何動作,則傳回 false。

請參閱

此函式的連結

setBackgroundStyle(This, Style)

檢視原始碼
-spec setBackgroundStyle(This, Style) -> boolean() when This :: wxWindow(), Style :: wx:wx_enum().

設定視窗的背景樣式。

預設的背景樣式為 wxBG_STYLE_ERASE,表示可以在 EVT_ERASE_BACKGROUND 處理程式中清除視窗背景。這是一個安全、相容的預設值;但是,如果您根本不定義任何清除背景事件處理程式,則可能需要將其變更為 wxBG_STYLE_SYSTEM,以避免不必要地產生清除背景事件,並始終讓系統清除背景。如果您定義了一個會完全覆寫視窗背景的 EVT_PAINT 處理程式,則應將背景樣式變更為 wxBG_STYLE_PAINT,因為在這種情況下,先前在 EVT_ERASE_BACKGROUND 處理程式或系統預設處理程式中清除它會導致閃爍,因為每次重新繪製視窗時,背景像素都會重新繪製兩次。但是,請確保在這種情況下,您的 EVT_PAINT 處理程式已完全清除背景,否則可能會在螢幕上留下垃圾。

請注意,在先前版本的 wxWidgets 中,解決上述閃爍問題的常見方法是定義空的 EVT_ERASE_BACKGROUND 處理程式。將背景樣式設定為 wxBG_STYLE_PAINT 是針對相同問題的更簡單且更有效率的解決方案。

在 wxGTK 和 wxOSX 下,您可以使用 ?wxBG_STYLE_TRANSPARENT 來取得視窗背景的完全透明度。請注意,wxGTK 僅在啟用合成管理員的情況下,從 GTK 2.12 開始支援此功能,請呼叫 IsTransparentBackgroundSupported()(wx 中未實作)以檢查是否為這種情況。

此外,為了使 SetBackgroundStyle(wxBG_STYLE_TRANSPARENT) 能夠運作,必須在 create/4 之前呼叫它。如果您使用自己的 wxWindow 衍生類別,則應以下列方式編寫程式碼

請參閱

-spec setCaret(This, Caret) -> ok when This :: wxWindow(), Caret :: wxCaret:wxCaret().

設定與視窗相關聯的插入符號。

-spec setClientSize(This, Size) -> ok when This :: wxWindow(), Size :: {W :: integer(), H :: integer()};
                   (This, Rect) -> ok
                       when
                           This :: wxWindow(),
                           Rect :: {X :: integer(), Y :: integer(), W :: integer(), H :: integer()}.

這是一個為了方便起見而提供的多載成員函數。它與上述函數的唯一不同之處在於它接受的引數。

此函式的連結

setClientSize(This, Width, Height)

檢視原始碼
-spec setClientSize(This, Width, Height) -> ok
                       when This :: wxWindow(), Width :: integer(), Height :: integer().

這會設定視窗用戶端區域的像素大小。

setSize/6 相比,使用此函式調整視窗大小往往更獨立於裝置,例如,當嘗試將視窗調整到面板項目周圍時,應用程式不需要擔心邊框或標題列的尺寸。

請參閱: 視窗大小調整概述

此函式的連結

setContainingSizer(This, Sizer)

檢視原始碼
-spec setContainingSizer(This, Sizer) -> ok when This :: wxWindow(), Sizer :: wxSizer:wxSizer().

wxSizer 內部使用,用於通知視窗目前由指定的 sizer 管理。

除非您正在實作自訂尺寸調整器類別,否則不應從程式庫外部呼叫此方法,而在後一種情況下,當視窗新增至尺寸調整器時,您必須使用指向尺寸調整器本身的指標呼叫此方法,而當視窗從尺寸調整器中移除時,則使用 NULL 引數呼叫此方法。

此函式的連結

setCursor(This, Cursor)

檢視原始碼
-spec setCursor(This, Cursor) -> boolean() when This :: wxWindow(), Cursor :: wxCursor:wxCursor().

設定視窗的游標。

請注意,視窗游標也會隱式地為視窗的子項設定它。

如果 cursorwxNullCursor,則視窗游標將會重置回預設值。

請參閱

此函式的連結

setDoubleBuffered(This, On)

檢視原始碼
-spec setDoubleBuffered(This, On) -> ok when This :: wxWindow(), On :: boolean().

如果系統支援,開啟或關閉視窗的雙緩衝。

此函式的連結

setDropTarget(This, Target)

檢視原始碼
-spec setDropTarget(This, Target) -> ok when This :: wxWindow(), Target :: wx:wx_object().

將一個拖放目標與此視窗關聯。

如果視窗已經有放置目標,則會被刪除。

請參閱

此函式的連結

setExtraStyle(This, ExStyle)

檢視原始碼
-spec setExtraStyle(This, ExStyle) -> ok when This :: wxWindow(), ExStyle :: integer().

設定視窗的額外樣式位元。

目前定義的額外樣式位元會在類別描述中回報。

-spec setFocus(This) -> ok when This :: wxWindow().

設定此視窗以接收鍵盤輸入。

請參閱

-spec setFocusFromKbd(This) -> ok when This :: wxWindow().

當使用者從鍵盤將焦點給予此視窗時(例如使用 TAB 鍵),wxWidgets 鍵盤導覽程式碼會呼叫此函式。

預設情況下,此方法僅呼叫 setFocus/1,但在衍生類別中可以覆寫此方法以執行其他操作。

-spec setFont(This, Font) -> boolean() when This :: wxWindow(), Font :: wxFont:wxFont().

設定此視窗的字型。

如果您不希望父視窗的字型被其子視窗繼承,則不應為父視窗呼叫此函數,請改為使用 setOwnFont/2,並參閱 inheritAttributes/1 以獲取更多說明。

請注意,給定的字型不會自動用於與此視窗關聯的 wxPaintDC 物件,您也需要呼叫 wxDC:setFont/2。然而,此字型會被任何標準控制項用於繪製其文字,以及 getTextExtent/3 使用。

回傳值:如果字型確實已變更則回傳 true,如果已設定為此字型且沒有執行任何動作,則回傳 false。

請參閱

此函式的連結

setForegroundColour(This, Colour)

檢視原始碼
-spec setForegroundColour(This, Colour) -> boolean() when This :: wxWindow(), Colour :: wx:wx_colour().

設定視窗的前景顏色。

前景色含義會因視窗類別而異;它可能是文字顏色或其他顏色,或者可能根本未使用。此外,並非所有原生控制項都支援變更其前景色,因此此方法可能只會部分變更其顏色,甚至完全不會變更。

請參閱 inheritAttributes/1 以說明此方法與 setOwnForegroundColour/2 之間的差異。

傳回:如果顏色確實已變更,則傳回 true,如果已設定為此顏色且未執行任何動作,則傳回 false。

請參閱

此函式的連結

setHelpText(This, HelpText)

檢視原始碼
-spec setHelpText(This, HelpText) -> ok when This :: wxWindow(), HelpText :: unicode:chardata().

設定要用於此視窗內容相關說明的說明文字。

請注意,文字實際上是由目前的 wxHelpProvider (在 wx 中未實作) 實作儲存,而不是儲存在視窗物件本身中。

請參閱:getHelpText/1

-spec setId(This, Winid) -> ok when This :: wxWindow(), Winid :: integer().

設定視窗的識別碼。

備註:每個視窗都有一個整數識別碼。如果應用程式沒有提供識別碼,則會產生一個識別碼。通常,應該在建立時提供識別碼,且不應隨後修改。

請參閱

-spec setLabel(This, Label) -> ok when This :: wxWindow(), Label :: unicode:chardata().

設定視窗的標籤。

請參閱:getLabel/1

此函式的連結

setMaxSize(This, Size)

檢視原始碼
-spec setMaxSize(This, Size) -> ok when This :: wxWindow(), Size :: {W :: integer(), H :: integer()}.

設定視窗的最大尺寸,以向 sizer 版面配置機制指示這是最大可能的尺寸。

請參閱: 視窗大小調整概述

此函式的連結

setMinSize(This, Size)

檢視原始碼
-spec setMinSize(This, Size) -> ok when This :: wxWindow(), Size :: {W :: integer(), H :: integer()}.

設定視窗的最小尺寸,以向 sizer 版面配置機制指示這是最小所需的尺寸。

如果您在建構之後,但在將其新增至父容器之前變更了視窗大小,您可能需要呼叫此方法。

請注意,呼叫此方法不會阻止程式透過呼叫 setSize/6 來明確地將視窗縮小至小於指定大小,它只是確保在自動版面配置期間,它不會變得小於此大小。

請參閱: 視窗大小調整概述

-spec setName(This, Name) -> ok when This :: wxWindow(), Name :: unicode:chardata().

設定視窗的名稱。

請參閱:getName/1

此函式的連結

setOwnBackgroundColour(This, Colour)

檢視原始碼
-spec setOwnBackgroundColour(This, Colour) -> ok when This :: wxWindow(), Colour :: wx:wx_colour().

設定視窗的背景顏色,但防止此顏色被此視窗的子視窗繼承。

請參閱

此函式的連結

setOwnFont(This, Font)

檢視原始碼
-spec setOwnFont(This, Font) -> ok when This :: wxWindow(), Font :: wxFont:wxFont().

設定視窗的字型,但防止此字型被此視窗的子視窗繼承。

請參閱

此函式的連結

setOwnForegroundColour(This, Colour)

檢視原始碼
-spec setOwnForegroundColour(This, Colour) -> ok when This :: wxWindow(), Colour :: wx:wx_colour().

設定視窗的前景顏色,但防止此顏色被此視窗的子視窗繼承。

請參閱

-spec setPalette(This, Pal) -> ok when This :: wxWindow(), Pal :: wxPalette:wxPalette().

已棄用

請改用 wxDC:setPalette/2

此函式的連結

setScrollbar(This, Orientation, Position, ThumbSize, Range)

檢視原始碼
-spec setScrollbar(This, Orientation, Position, ThumbSize, Range) -> ok
                      when
                          This :: wxWindow(),
                          Orientation :: integer(),
                          Position :: integer(),
                          ThumbSize :: integer(),
                          Range :: integer().

等同於 setScrollbar(This, Orientation, Position, ThumbSize, Range, [])

-spec setScrollbar(This, Orientation, Position, ThumbSize, Range, [Option]) -> ok
                      when
                          This :: wxWindow(),
                          Orientation :: integer(),
                          Position :: integer(),
                          ThumbSize :: integer(),
                          Range :: integer(),
                          Option :: {refresh, boolean()}.

設定內建捲軸的屬性。

備註:假設您希望使用相同的字型顯示 50 行文字。視窗的大小設定為一次只能看到 16 行。您可以使用:請注意,當視窗設定為此大小時,捲動軸的拇指位置永遠不會超過 50 減 16,也就是 34。您可以透過將目前檢視大小除以字元的像素高度來決定目前可見的行數。在定義您自己的捲動軸行為時,當視窗大小變更時,您總是需要重新計算捲動軸設定。因此,您可以將捲動軸計算和 SetScrollbar 呼叫放入名為 AdjustScrollbars 的函式中,該函式可以初始呼叫,也可以從您的 wxSizeEvent 處理函式中呼叫。

請參閱

此函式的連結

setScrollPos(This, Orientation, Pos)

檢視原始碼
-spec setScrollPos(This, Orientation, Pos) -> ok
                      when This :: wxWindow(), Orientation :: integer(), Pos :: integer().

等同於 setScrollPos(This, Orientation, Pos, [])

-spec setScrollPos(This, Orientation, Pos, [Option]) -> ok
                      when
                          This :: wxWindow(),
                          Orientation :: integer(),
                          Pos :: integer(),
                          Option :: {refresh, boolean()}.

設定其中一個內建捲軸的位置。

備註:此函式不會直接影響視窗的內容:應用程式必須注意捲動軸屬性並相應地重新繪製內容。

請參閱

-spec setSize(This, Rect) -> ok
                 when
                     This :: wxWindow(),
                     Rect :: {X :: integer(), Y :: integer(), W :: integer(), H :: integer()};
             (This, Size) -> ok when This :: wxWindow(), Size :: {W :: integer(), H :: integer()}.

這是一個為了方便起見而提供的多載成員函數。它與上述函數的唯一不同之處在於它接受的引數。

-spec setSize(This, Width, Height) -> ok
                 when This :: wxWindow(), Width :: integer(), Height :: integer();
             (This, Rect, [Option]) -> ok
                 when
                     This :: wxWindow(),
                     Rect :: {X :: integer(), Y :: integer(), W :: integer(), H :: integer()},
                     Option :: {sizeFlags, integer()}.

設定視窗的像素大小。

大小是使用 {X,Y,W,H}、{Width,Height} 或一對 int 物件指定的。

備註:此形式必須與非預設寬度和高度值一起使用。

請參閱

此函式的連結

setSize(This, X, Y, Width, Height)

檢視原始碼
-spec setSize(This, X, Y, Width, Height) -> ok
                 when
                     This :: wxWindow(),
                     X :: integer(),
                     Y :: integer(),
                     Width :: integer(),
                     Height :: integer().

等同於 setSize(This, X, Y, Width, Height, [])

-spec setSize(This, X, Y, Width, Height, [Option]) -> ok
                 when
                     This :: wxWindow(),
                     X :: integer(),
                     Y :: integer(),
                     Width :: integer(),
                     Height :: integer(),
                     Option :: {sizeFlags, integer()}.

設定視窗的像素大小。

備註:此多載會設定視窗的位置和可選的大小。參數可以是 wxDefaultCoord,表示 wxWidgets 應提供預設值,或應使用維度的目前值。

請參閱

此函式的連結

setSizeHints(This, MinSize)

檢視原始碼
-spec setSizeHints(This, MinSize) -> ok
                      when This :: wxWindow(), MinSize :: {W :: integer(), H :: integer()}.

等同於 setSizeHints(This, MinSize, [])

-spec setSizeHints(This, MinW, MinH) -> ok when This :: wxWindow(), MinW :: integer(), MinH :: integer();
                  (This, MinSize, [Option]) -> ok
                      when
                          This :: wxWindow(),
                          MinSize :: {W :: integer(), H :: integer()},
                          Option ::
                              {maxSize, {W :: integer(), H :: integer()}} |
                              {incSize, {W :: integer(), H :: integer()}}.

不建議將此函式用於非最上層視窗(例如 wxDialogwxFrame)的視窗。

請改用 setMinSize/2setMaxSize/2

請參閱

-spec setSizeHints(This, MinW, MinH, [Option]) -> ok
                      when
                          This :: wxWindow(),
                          MinW :: integer(),
                          MinH :: integer(),
                          Option ::
                              {maxW, integer()} |
                              {maxH, integer()} |
                              {incW, integer()} |
                              {incH, integer()}.

這是一個為了方便起見而提供的多載成員函數。它與上述函數的唯一不同之處在於它接受的引數。

-spec setSizer(This, Sizer) -> ok when This :: wxWindow(), Sizer :: wxSizer:wxSizer().

等同於 setSizer(This, Sizer, [])

-spec setSizer(This, Sizer, [Option]) -> ok
                  when This :: wxWindow(), Sizer :: wxSizer:wxSizer(), Option :: {deleteOld, boolean()}.

設定視窗使用指定的版面配置 sizer。

視窗接著將擁有該物件,並會負責其刪除。如果現有的版面配置約束物件已由視窗擁有,則如果 deleteOld 參數為 true,則會將其刪除。

請注意,如果 sizer 不是 NULL,則此函式也會隱含地呼叫 setAutoLayout/2 並帶有 true 參數,否則呼叫 false,以便在調整視窗大小時,調整器會有效地用於配置視窗子項。

備註:SetSizer 會自動啟用和停用版面配置。

此函式的連結

setSizerAndFit(This, Sizer)

檢視原始碼
-spec setSizerAndFit(This, Sizer) -> ok when This :: wxWindow(), Sizer :: wxSizer:wxSizer().

等同於 setSizerAndFit(This, Sizer, [])

-spec setSizerAndFit(This, Sizer, [Option]) -> ok
                        when
                            This :: wxWindow(),
                            Sizer :: wxSizer:wxSizer(),
                            Option :: {deleteOld, boolean()}.

將 sizer 與視窗關聯,並據此設定視窗的大小和最小尺寸。

此方法會呼叫 setSizer/3,然後呼叫 wxSizer:setSizeHints/2,這會將初始視窗大小設定為容納所有調整器元素所需的大小,並將最小大小設定為相同大小,這會防止使用者將此視窗調整為小於此最小大小 (如果它是可以由使用者直接調整大小的最上層視窗)。

此函式的連結

setThemeEnabled(This, Enable)

檢視原始碼
-spec setThemeEnabled(This, Enable) -> ok when This :: wxWindow(), Enable :: boolean().

此函式告知視窗是否應該使用系統的「主題」程式碼來繪製視窗的背景,而不是使用其自身的背景繪製程式碼。

這並不總是會產生任何效果,因為底層平台顯然需要在使用者定義的視窗中支援佈景主題的概念。其中一個平台是 GTK+,其中視窗可以具有由使用者選取的佈景主題定義的(非常豐富多彩的)背景。

對話方塊、筆記本頁面和狀態列預設會將此旗標設定為 true,以便盡可能模擬預設的外觀和風格。

請參閱:getThemeEnabled/1

-spec setToolTip(This, TipString) -> ok when This :: wxWindow(), TipString :: unicode:chardata();
                (This, Tip) -> ok when This :: wxWindow(), Tip :: wxToolTip:wxToolTip().

這是一個為了方便起見而提供的多載成員函數。它與上述函數的唯一不同之處在於它接受的引數。

此函式的連結

setTransparent(This, Alpha)

檢視原始碼
-spec setTransparent(This, Alpha) -> boolean() when This :: wxWindow(), Alpha :: integer().

設定視窗的透明度。

如果系統支援透明視窗,則會回傳 true,否則會回傳 false,且視窗保持完全不透明。另請參閱 canSetTransparent/1

參數 alpha 的範圍為 0..255,其中 0 對應於完全透明的視窗,255 對應於完全不透明的視窗。可以使用常數 wxIMAGE_ALPHA_TRANSPARENTwxIMAGE_ALPHA_OPAQUE

此函式的連結

setVirtualSize(This, Size)

檢視原始碼
-spec setVirtualSize(This, Size) -> ok when This :: wxWindow(), Size :: {W :: integer(), H :: integer()}.

這是一個為了方便起見而提供的多載成員函數。它與上述函數的唯一不同之處在於它接受的引數。

此函式的連結

setVirtualSize(This, Width, Height)

檢視原始碼
-spec setVirtualSize(This, Width, Height) -> ok
                        when This :: wxWindow(), Width :: integer(), Height :: integer().

設定視窗的虛擬像素大小。

請參閱: 視窗大小調整概述

此函式的連結

setWindowStyle(This, Style)

檢視原始碼
-spec setWindowStyle(This, Style) -> ok when This :: wxWindow(), Style :: integer().

請參閱 setWindowStyleFlag/2 以取得更多資訊。

此函式的連結

setWindowStyleFlag(This, Style)

檢視原始碼
-spec setWindowStyleFlag(This, Style) -> ok when This :: wxWindow(), Style :: integer().

設定視窗的樣式。

請注意,某些樣式在視窗建立後無法變更,並且在變更其他樣式後,可能需要呼叫 refresh/2 以使變更立即生效。

請參閱 視窗樣式 以獲取有關旗標的更多資訊。

請參閱:getWindowStyleFlag/1

此函式的連結

setWindowVariant(This, Variant)

檢視原始碼
-spec setWindowVariant(This, Variant) -> ok when This :: wxWindow(), Variant :: wx:wx_enum().

選擇要使用的視窗顯示的不同變體。

視窗變體目前僅在大小上有所不同,如 ?wxWindowVariant 文件中所見。在 macOS 以外的所有平台上,此函數所做的僅僅是變更視窗使用的字型。但是,在 macOS 下,它是以原生方式實作,並選取原生小工具的適當變體,其外觀優於僅縮小或放大正常變體的版本,因此應優先選擇直接調整字型大小。

預設情況下,控制項自然會使用正常變體。

此函式的連結

shouldInheritColours(This)

檢視原始碼
-spec shouldInheritColours(This) -> boolean() when This :: wxWindow().

從此處傳回 true,以允許此視窗的顏色由 inheritAttributes/1 變更。

回傳 false 會禁止從父視窗繼承它們。

基底類別版本回傳 false,但此方法會在 wxControl 中覆寫,其中它會回傳 true。

-spec show(This) -> boolean() when This :: wxWindow().

等同於 show(This, [])

-spec show(This, [Option]) -> boolean() when This :: wxWindow(), Option :: {show, boolean()}.

顯示或隱藏視窗。

如果您想要將最上層視窗移到最上方,您可能需要呼叫 raise/1,儘管如果在框架建立後立即呼叫 show/2,則不需要呼叫。

請注意,新建立的最上層視窗的預設狀態是隱藏的(允許您建立其內容而不會閃爍),與所有其他不是從 wxTopLevelWindow 衍生而來的視窗不同,這些視窗預設是在顯示的狀態下建立的。

回傳值:如果視窗已顯示或隱藏,則回傳 true,如果由於它已處於要求的狀態而未執行任何動作,則回傳 false。

請參閱

-spec thaw(This) -> ok when This :: wxWindow().

在先前呼叫 freeze/1 之後,重新啟用視窗更新。

要真正解凍控制項,必須呼叫它與 freeze/1 相同的次數。

如果視窗有任何子項,也會以遞迴方式解凍它們。

請參閱

-spec toDIP(D, W) -> integer() when D :: integer(), W :: wxWindow();
           (Sz, W) -> {W :: integer(), H :: integer()}
               when Sz :: {W :: integer(), H :: integer()}, W :: wxWindow();
           (This, D) -> integer() when This :: wxWindow(), D :: integer();
           (This, Sz) -> {W :: integer(), H :: integer()}
               when This :: wxWindow(), Sz :: {W :: integer(), H :: integer()}.

將目前工具組的像素值轉換為與 DPI 無關的像素值。

與 DPI 無關的像素只是標準 96 DPI 解析度的像素。為了在高解析度下保持相同的物理大小,物理像素值必須按 getDPIScaleFactor/1 縮放,但此縮放可能已由底層工具組 (GTK+、Cocoa、...) 自動完成。此方法僅在低階工具組尚未完成轉換時才執行轉換。例如,您可能想要使用它來儲存視窗大小和位置,以便無論顯示 DPI 如何都可以重複使用它們。

另請注意,如果 sz 的任一元件具有 -1 的特殊值,則無論目前的 DPI 如何,都會傳回未變更的值,以保留 wxWidgets API 中 -1 的特殊值 (它通常用來表示「未指定」)。

自:3.1.0

此函式的連結

transferDataFromWindow(This)

檢視原始碼
-spec transferDataFromWindow(This) -> boolean() when This :: wxWindow().

將子控制項的值傳輸到其驗證器所指定的資料區域。

如果傳輸失敗,則回傳 false。

請注意,這也會以遞迴方式呼叫所有子項的 transferDataFromWindow/1

請參閱

此函式的連結

transferDataToWindow(This)

檢視原始碼
-spec transferDataToWindow(This) -> boolean() when This :: wxWindow().

將值從其驗證器所指定的資料區域傳輸到子控制項。

請注意,這也會以遞迴方式呼叫所有子項的 transferDataToWindow/1

回傳值:如果傳輸失敗,則回傳 false。

請參閱

-spec update(This) -> ok when This :: wxWindow().

呼叫此方法會立即重新繪製視窗的失效區域及其所有子視窗(這通常只會在控制流程返回事件迴圈時發生)。

請注意,此函式不會使視窗的任何區域失效,因此如果沒有任何內容失效(即,標示為需要重新繪製),則不會發生任何事情。如果您想要立即無條件地重新繪製視窗,請先使用 refresh/2

-spec updateWindowUI(This) -> ok when This :: wxWindow().

等同於 updateWindowUI(This, [])

-spec updateWindowUI(This, [Option]) -> ok when This :: wxWindow(), Option :: {flags, integer()}.

此函式會將一個或多個 wxUpdateUIEvent 傳送至視窗。

特定的實作取決於視窗;例如,wxToolBar 將為每個工具列按鈕傳送一個更新 UI 事件,而 wxFrame 將為每個功能表列功能表項目傳送一個更新 UI 事件。

您可以從您的應用程式呼叫此函式,以確保您的 UI 在此時是最新的(就您的 wxUpdateUIEvent 處理常式而言)。如果您呼叫了 wxUpdateUIEvent:setMode/1wxUpdateUIEvent:setUpdateInterval/1 以限制 wxWidgets 在閒置時間傳送更新 UI 事件所產生的額外負擔,則可能需要這樣做。flags 應為 ?wxUpdateUI 列舉的一個或多個位元清單。

如果您從 OnInternalIdle 或 OnIdle 函式呼叫此函式,請確保傳遞 wxUPDATE_UI_FROMIDLE 旗標,因為這會告知視窗僅更新閒置時間需要更新的 UI 元素。某些視窗僅在必要時才更新其元素,例如當功能表即將顯示時。以下是如何從閒置函式呼叫 UpdateWindowUI 的範例。

請參閱:wxUpdateUIEvent

-spec validate(This) -> boolean() when This :: wxWindow().

使用其驗證器來驗證子控制項的目前值。

請注意,這也會以遞迴方式呼叫所有子項的 validate/1

回傳值:如果任何驗證失敗,則回傳 false。

請參閱

此函式的連結

warpPointer(This, X, Y)

檢視原始碼
-spec warpPointer(This, X, Y) -> ok when This :: wxWindow(), X :: integer(), Y :: integer().

將指標移動到視窗上的指定位置。

注意:Apple 人機介面指南禁止以程式方式移動滑鼠游標,因此您應避免在 Mac 應用程式中使用此函式(也可能避免在沒有充分理由的情況下在其他平台下使用)。