顏色對話框允許用戶選擇常用的系統色。
使用API函數ChooseColor可以彈出一個顏色對話框。
MFC對顏色的對話框的封裝類為CColorDialog。
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
修改FontDlgDemo實例,添加一個按鈕控件,將其文本改為“顏色”,將其ID改為IDC_BTN_COLOR
為其添加消息響應函數:
[cpp] www.2cto.com
void CFontDlgDemoDlg::OnBtnColor()
{
// TODO: Add your control notification handler code here
///定義並初始化文字格式結構
CHARFORMAT cf = {0};
cf.cbSize = sizeof(cf);
cf.dwMask = CFM_COLOR;
///取得文本框當前文字的格式
m_edtContext.GetSelectionCharFormat(cf);
CColorDialog dlg(cf.crTextColor);
///顯示對話框,選擇字體的格式
if(dlg.DoModal() == IDOK)
{
////取得用戶所選字體
cf.crTextColor = dlg.GetColor();
///將顏色設置到文本框當前文本
cf.dwEffects = 0;
m_edtContext.SetSelectionCharFormat(cf);
}
}
說明;
1、CColorDialog的構造函數比較簡單,主要的參數就是要指定其初始化顏色。
2、對話框返回後,可以使用dlg.GetColor()獲得新的顏色。
3、將新顏色設置到文本框,本例采用了和設置字體類型相似的方法,但是將CHARFORMAT結構的dwMask設置為CFM_CO;LOR,將
dwEffects設置為0,以使該結構中的其余成員被忽略,只修改顏色屬性。