基礎視窗類別
視窗類別wxWindow
wxWindow視窗類別既是一個重要的基類,也是一個你可以直接在代碼中使用的類。
建構函式原型如下:
wxWindow(wxWindow* parent,
wxWindowID id,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = 0,
const wxString& name = wxT("panel"));
視窗類別型
如果在建立視窗的時候你沒有指定視窗的邊框類型,那麼在不同的平台上將會有不同的邊框類型的預設值。在windows平台上,控制項邊框的預設值為 wxSUNKEN_BORDER,意為使用當前系統風格的邊框。你可以使用類似wxNO_BORDER這樣的值來覆蓋系統的預設值。
wxSIMPLE_BORDER
在視窗周圍顯示一個瘦邊框.
wxDOUBLE_BORDER
顯示一個雙層邊框.
wxSUNKEN_BORDER
顯示一個凹陷的邊框,或者使用當前視窗風格設定.
wxRAISED_BORDER
顯示一個凸起的邊框.
wxSTATIC_BORDER
顯示一個適合靜態控制項的邊框. 只支援Windows平台.
wxNO_BORDER
不顯示任何邊框.
wxTRANSPARENT_WINDOW
定義一個透明視窗 (意思是這個視窗不接收paint事件).只支援windows平台.
wxTAB_TRAVERSAL
使用這個類型允許非Dialog視窗支援使用TAB進行遍曆.
wxWANTS_CHARS
使用這個類型來允許視窗接收包括斷行符號和TAB在內的所有的鍵盤事件。TAB用來在Dialog類型的視窗中遍曆各控制項。如果沒有設定這個類型,這些特殊的按鍵事件將不會被產生。
wxFULL_REPAINT_ON_RESIZE
在預設情況下,在視窗客戶區大小發生改變時,wxWidgets並不會重畫整個客戶區。設定這個類型將使得wxWidgets改變這種預設的作法,而保持整個客戶區的重新整理
wxVSCROLL
顯示垂直捲軸.
wxHSCROLL
顯示水平捲軸.
wxALWAYS_SHOW_SB
如果一個視窗有捲軸,那麼在不需要捲軸的時候(當視窗足夠大不需要使用捲軸的時候),禁止滾條而不隱藏捲軸。這個類型目前只支援Windows平台和wxWidgets的wxUniversal版本.
wxCLIP_CHILDREN
只支援Windows平台,用於消除由於擦除子視窗的背景而引起的閃鑠.
視窗的擴充類型,這些擴充類型不能直接和類型混用,而要使用wxWindow::SetExtraStyle函數來進行設定。
wxWS_EX_VALIDATE_RECURSIVELY
在預設情況下,Validate,transferDataToWindow,和transferDataFromWindow只在視窗的直接子視窗上才可以使用。如果設定了這個擴充類型,那麼將可以遞迴的在各個子視窗上使用。
wxWS_EX_BLOCK_EVENTS
wxCommandEvents事件將會在無法在當前事件表中找到匹配的時候在其父視窗中嘗試匹配,設定這個擴充屬性可以阻止這個行為。Dialog類型的視窗預設設定了這個類型,但是如果SetExtraStyle被應用程式類調用過的話,預設設定可能被覆蓋.
wxWS_EX_TRANSIENT
不要使用這個視窗作為其它視窗的父視窗.這個類型一定只能用於瞬間視窗;否則,如果使用它作為一個dialog或者frame類型視窗的父視窗,如果父視窗在子視窗之前釋放,可能導致系統崩潰。
wxWS_EX_PROCESS_IDLE
這個視窗應該處理所有的idle事件,包括那些設定了wxIDLE_PROCESS_SPECIFIED模式的idle事件。
wxWS_EX_PROCESS_UI_UPDATES
這個視窗將處理所有的Ui重新整理事件,包括那些設定了wxUPDATE_UI_PROCESS_SPECIFIED的UI重新整理事件。參考第9章獲得和介面重新整理有關的更多的內容.