使用Windows 通用的颜色对话框,如图4-32 所示。
CColorDialog 封装了字体对话框的使用,其使用方法与前面所述的模态通用对话框类似。
图4-32 颜色对话框
GridDemo 例程中使用颜色对话框的代码在CGridDemoView::OnSetColor()函数中。添加
步骤如下。
(1)添加CGridDemoView::OnSetColor()消息处理函数。
CGridDemoView::OnSetColor()函数是“编辑|颜色”菜单的消息处理函数,对应ID 为
ID_SET_COLOR。用户需要按照第3 章的讲解,在“编辑”顶层菜单中添加标题为“颜色”,
ID 为ID_SET_COLOR 的子菜单,然后为CGridDemoView 类添加这个ID 的消息处理函数,
即OnSetColor()。
(2)编辑CGridDemoView::OnSetColor()消息处理函数使用颜色对话框。代码如下:
void CGridDemoView::OnSetColor()
{
// TODO: Add your command handler code here
//获得选中单元格的旧前景色
CColorDialog dlg(m_CellArray[m_nCurCellID].GetFgColor());
if (dlg.DoModal()==IDOK)
枫叶文学网www.fywxw.com
第4 章 对话框
·97·
{
//设置新的前景颜色
m_CellArray[m_nCurCellID].SetFgColor(dlg.GetColor());
}
}
4.6 消息对话框
消息对话框MessageBox 是Windows 系统中自带的最简单的对话框,用于提示一些简单
的信息,如图4-33 所示。本章4.1.3 节中实例Sample4_1 在登录对话框的消息处理函数中就
大量使用了消息对话框。
图4-33 消息对话框
在MFC 中,消息对话框通过CWnd::MessageBox()和AfxMessageBox()两个函数进行调用。
前一个函数是CWnd 的成员函数,而AfxMessageBox()则是全局函数。两个函数的原型分别为:
int MessageBox(
LPCTSTR lpszText,
LPCTSTR lpszCaption = NULL,
UINT nType = MB_OK
);
int AfxMessageBox(
LPCTSTR lpszText,
UINT nType = MB_OK,
UINT nIDHelp = 0
);
? lpszText 参数:用于设置对话框的内容。
? lpszCaption 参数:用于设置对话框的标题。
? nType 参数:设置消息对话框的属xìng,属xìng可以为表