我的實現方法
查找到Slider控件,設置控件的 m_bImmMode 爲true
處理Notify消息中 valuechanged 消息
具體剪輯代碼如下
CSliderUI* sld = static_cast<CSliderUI*>(m_PaintManager.FindControl(_T("AdjustColorSliderR")));
if (sld) {
sld->SetImmMode(true);
}
if (msg.sType == DUI_MSGTYPE_VALUECHANGED) {
DUITRACE(_T("%s"), msg.sType);
return;
}
兩種方法都可以實現,不存在優劣,各自的方法可以實現自己技術的修煉,不過我是各傾向於少寫代碼,實現儘可能重用。
列表框單選按鈕COptionUI,按鈕定義爲 group=”switch” 庫會自動將其它開關設置爲關,只設置一個爲開
<?xml version="1.0" encoding="UTF-8"?>
<Window>
<ListContainerElement>
<HorizontalLayout height="62" >
<VerticalLayout >
<HorizontalLayout>
<Label name="nickname" bordersize="0" width="260" textcolor="#FF000000" disabledtextcolor="#FF808080" />
<Label name="description" bordersize="0" textcolor="#FF808080" />
</HorizontalLayout>
</VerticalLayout>
<VerticalLayout name="logo_container" width="54" padding="30,11,10,11">
<option name="logo" group="switch" width="54" height="22" normalimage="switch_off.png" selectedimage="switch_on.png"/>
</VerticalLayout>
<VerticalLayout name="operation" height="16" visible="false">
</VerticalLayout >
</HorizontalLayout>
</ListContainerElement>
</Window>