RadioButtonGroup 控制項
RadioButtonGroup 控制項是一組單選按鈕。 它可讓使用者從預先決定的值清單中選取屬性的字串或整數值。 您可以將屬性的名稱輸入 Control 資料表的 Property 數據行,讓這個控件與屬性產生關聯。 在 RadioButton 資料表的 [值] 資料行中指定選取的可能值。 請注意,顯示的字串不一定與用戶選擇的值相同。
每個 RadioButtonGroup 控制件都會與 屬性相關聯。 此屬性的預設值必須在 Property 資料表中初始化。 在 RadioButton 資料表中指定的每個 RadioButtonGroup 內,可能有一個單選按鈕在 [值] 字段中的值符合此屬性的預設值。 這是 RadioButtonGroup 控制的預設按鈕。 [ 預設 ] 按鈕一開始會顯示為控件中選取的按鈕。
請注意,在選取群組中的其中一個按鈕之前,對話框上的焦點無法移至 RadioButtonGroup 控制件。 若要讓焦點移至此按鈕群組,請將其中一個按鈕指定為群組的預設按鈕。
RadioButtonGroup 控制項只會設定屬性值,而且無法用來傳送 ControlEvent。
實作會將整個群組視為一個控件,因此無法隱藏或停用群組內的個別按鈕。 同樣地,所有按鈕都必須具有相同的樣式,也就是說,所有按鈕都有文字,或者所有按鈕都有位圖(或其他類似的特徵)。 按鈕的位置是相對於群組所撰寫。 如此一來,只要變更群組的座標,即可移動整個群組,而不需要變更個別按鈕。 在建立時,控件會確認個別按鈕不會超出群組的界限。
控件屬性
您可以使用下列屬性搭配此控制件。 若要使用事件變更屬性的值,請將控件訂閱至 EventMapping 數據表中的 ControlEvent,並在 [屬性] 資料行中列出屬性的識別碼。 在 [事件] 數據行中輸入 ControlEvent 的標識碼。
屬性標識碼 | 十六進位位 | 描述 |
---|---|---|
IndirectPropertyName | 這是與控件相關聯的間接屬性名稱。 如果已設定 Indirect 屬性位,控制項會顯示或變更具有這個名稱的屬性值。 如果已設定 Indirect 屬性位,這個名稱也是 Control 資料表的 Property 資料行中列出的屬性值。 | |
位置 | 控件在對話框中的位置。 在控件數據表的 Width、Height、X 和 Y 資料行中,輸入控件左角的寬度、高度和座標。 使用 安裝程式單位 的長度和距離。 |
|
PropertyName | 這是與這個控件相關聯的屬性名稱。 如果未設定 Indirect 屬性位,控制項會顯示或變更具有這個名稱的屬性值。 此屬性是在 Control 資料表的 Property 資料行中指定。 | |
PropertyValue | 這個控件所顯示或變更之屬性的目前值。 如果未設定 Indirect 屬性位,這是 PropertyName 的值。 如果已設定 Indirect 屬性位,這是 IndirectPropertyName 的值。 如果屬性變更,控件會反映新的值。 | |
Text | 這個控件屬性可以指定控件所顯示的文字、儲存在二進位數據表中的影像,或運行時間的映射集。 若要指定文字,請在 Control 資料表的 Text 資料行中輸入文字字串。 若要設定此文字的字型和字型樣式,請在顯示的字元字串前面加上 {\style} 或 {&style}。 其中 style 是 TextStyle 數據表之 TextStyle 數據行中列出的標識碼。 如果兩者都不存在,但 DefaultUIFont 屬性會定義為有效的文字樣式,則會使用該字型。 若要指定儲存在 Binary 資料表中的圖示或點陣圖影像,請從二進位數據表的 [名稱] 資料行輸入影像記錄的主鍵,進入控件之 [控件] 資料表記錄的 [文字] 資料行。 |
|
Visible | 0x00000000 0x00000001 |
隱藏的控件。 可見控制件。 將這個位包含在 Control 資料表中 Attributes 數據行的位字中,讓控件在建立時可見或隱藏。 您也可以使用 ControlCondition 資料表來隱藏或顯示控件。 |
已啟用 | 0x00000000 0x00000002 |
處於停用狀態的控制件。 處於啟用狀態的控制件。 在控件的 [屬性] 資料行中包含此位,以在建立時啟用控件。 您也可以使用 ControlCondition 數據表來啟用或停用控件。 |
沉沒 | 0x00000000 0x00000004 |
顯示預設的視覺化樣式。 以沉沒的 3D 外觀顯示控制件。 在 Control 資料表的 [屬性] 資料行中,將這些位包含在位字中。 |
間接 | 0x00000000 0x00000008 |
控制項會在 Control 資料表的 [屬性] 資料行中顯示或變更 屬性的值。 控件會顯示或變更屬性的值,其標識符列在 Control 數據表的 Property 資料行中。 判斷與這個控件相關聯的屬性是否間接參考。 |
整數 | 0x00000000 0x00000010 |
與控件相關聯的屬性是字串值。 與控件相關聯的屬性是整數值。 將這個位包含在 Control 數據表的 Attributes 數據行的位字中,以在建立控件時設定此屬性。 |
RTLRO | 0x00000000 0x00000020 |
控件中的文字會以從左至右的閱讀順序顯示。 控件中的文字會以從右至左的閱讀順序顯示。 |
RightAligned | 0x00000000 0x00000040 |
控件中的文字會對齊左邊。 控件中的文字會對齊右邊。 |
PushLike | 0x00000000 0x00020000 |
控件會以其一般外觀繪製。 控件具有BS_PUSHLIKE樣式,並繪製成顯示為按鈕。 將這個位包含在 Control 數據表的 Attributes 數據行的位字中,以在建立控件時設定此屬性。 |
點陣圖 | 0x00000000 0x00040000 |
控制件中的文字是在控制項資料表的 Text 資料列中指定。 控件具有BS_BITMAP樣式,控件中的文字會由位圖影像取代。 Control 數據表中的 Text 數據行會當做二進位數據表的外鍵使用。 將這個位包含在 Control 資料表的 [屬性] 資料行的位字中。 請勿同時設定圖示和點陣陣圖樣式位。 按鈕不能同時包含位圖影像和文字。 若要設定文字字串的字型和字型樣式,請在顯示字元的字串前面加上 {\style} 或 {&style}。 其中 style 是 TextStyle 數據表之 TextStyle 數據行中列出的標識碼。 如果兩者都不存在,但 DefaultUIFont 屬性會定義為有效的文字樣式,則會使用該字型。 |
圖示 | 0x00000000 0x00080000 |
控制件中的文字是在控制項資料表的 Text 資料列中指定。 控件具有BS_ICON樣式,控件中的文字會由圖示影像取代。 Control 數據表中的 Text 數據行會當做二進位數據表的外鍵使用。 將這個位包含在 Control 資料表的 [屬性] 資料行的位字中。 請勿同時設定圖示和點陣陣。 按鈕不能同時包含圖示影像和文字。 若要設定文字字串的字型和字型樣式,請在顯示字元的字串前面加上 {\style} 或 {&style}。 其中 style 是 TextStyle 數據表之 TextStyle 數據行中列出的標識碼。 如果兩者都不存在,但 DefaultUIFont 屬性會定義為有效的文字樣式,則會使用該字型。 |
FixedSize | 0x00000000 0x00100000 |
伸展圖示影像以符合控件。 裁剪或置中控件中的圖示影像。 將這個位包含在 Control 資料表之 Attributes 數據行的位字中。 |
IconSize | 0x00000000 0x00200000 0x00400000 0x00600000 |
載入第一個影像。 載入前 16x16 影像。 載入前 32x32 影像。 載入前 48x48 映像。 圖示檔案可以包含相同圖示的不同大小影像。 在 Control 資料表的 [屬性] 資料行中包含適當位字的值 如果未設定這些位,安裝程式會忽略 FixedSize 屬性,並延展影像以符合控件矩形。 如果同時設定 IconSize 位和 FixedSize 位,則小於控件的影像置中,且影像大於壓縮以符合的控件。 |
HasBorder | 未設定0x01000000 |
沒有框線,也沒有文字。 顯示框線和文字。 將16777216包含在控件的 [屬性] 資料行的位字中,以顯示框線和文字。 |
備註
由於 Windows 繪製框架的方式,控件視窗頂端與可見框架之間有一個間距,即使沒有 標題 也一樣。
您可以使用 CreateWindowEx 函式,從 BUTTON 類別建立此控件。 如果已設定 HasBorder 位,則其具有BS_GROUPBOX樣式,否則其具有BS_OWNERDRAW樣式。
RadioButtonGroup 控件不應該重疊其他控件,其他控件不應該重疊 RadioButtonGroup。 重疊此控制件和另一個控制項可能會導致控件運作或顯示不正確。 若要提供螢幕助讀程式搭配 RadioButtonGroup 控件的額外描述性文字,請遵循將額外文字新增至單選按鈕中提供的範例。