颜色、字体对话框使用实例
2008-07-11 17:58
344 查看
1. 实例说明
单文档MFC工程。程序初始时,在客户区窗口显示一行文字和一个圆。当执行“设置”→“颜色”时,会弹出颜色对话框,选择颜色关闭后,圆的颜色将改变。当执行“字体”时,会弹出字体对话框,选择字体大小、颜色等,确定后将改变文字。
运行结果:
2. 实现代码
class CCommonDlgDemoView : public CView
{
……
// Attributes
public:
CCommonDlgDemoDoc* GetDocument();
COLORREF crColor; // 圆的颜色
COLORREF fntColor; // 字体颜色
LOGFONT fnt; // 字体结构
}
CCommonDlgDemoView::CCommonDlgDemoView()
{
crColor = RGB(255, 0, 0); // 圆的初始颜色红色
fntColor = RGB(0, 0, 255); // 字体的初始颜色蓝色
memset( &fnt, 0, sizeof(LOGFONT) );
fnt.lfHeight = 30; // 字体初始高度30
fnt.lfWeight = 400; // 初始字体浓淡
strcpy(fnt.lfFaceName, "Arial"); // 初始字体名称
}
void CCommonDlgDemoView::OnDraw(CDC* pDC)
{
CCommonDlgDemoDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
CPen mypen;
CPen* oldPen;
mypen.CreatePen(PS_SOLID, 3, crColor); // 创建画笔
oldPen = pDC->SelectObject(&mypen); // 载入画笔
pDC->Ellipse(100, 100, 250, 250); // 画圆
pDC->SelectObject(oldPen);
CFont myfont;
CFont* oldFont;
myfont.CreateFontIndirect(&fnt); // 创建字体
oldFont = pDC->SelectObject(&myfont); // 载入字体
pDC->SetTextColor(fntColor); // 字体的颜色
pDC->TextOut(50, 50, "字体对话框设置字体"); // 输出文字
pDC->SelectObject(oldFont);
}
void CCommonDlgDemoView::OnColor()
{
// TODO: Add your command handler code here
CColorDialog colordialog(crColor, CC_FULLOPEN); // 初始化颜色对话框对象
if(colordialog.DoModal() == IDOK) // 创建颜色对话框
{
crColor = colordialog.m_cc.rgbResult;
Invalidate(TRUE); // 重绘窗口
}
}
void CCommonDlgDemoView::OnFont()
{
// TODO: Add your command handler code here
CFontDialog fontdialog(&fnt); // 初始化字体对象
fontdialog.m_cf.rgbColors = fntColor; // 字体对话框初始化
if(fontdialog.DoModal() == IDOK) // 显示字体对话框
{
fontdialog.GetCurrentFont(&fnt); // 获取字体信息
fntColor = fontdialog.GetColor(); // 获取字体颜色
Invalidate(TRUE); // 重绘窗口
}
}
单文档MFC工程。程序初始时,在客户区窗口显示一行文字和一个圆。当执行“设置”→“颜色”时,会弹出颜色对话框,选择颜色关闭后,圆的颜色将改变。当执行“字体”时,会弹出字体对话框,选择字体大小、颜色等,确定后将改变文字。
运行结果:
2. 实现代码
class CCommonDlgDemoView : public CView
{
……
// Attributes
public:
CCommonDlgDemoDoc* GetDocument();
COLORREF crColor; // 圆的颜色
COLORREF fntColor; // 字体颜色
LOGFONT fnt; // 字体结构
}
CCommonDlgDemoView::CCommonDlgDemoView()
{
crColor = RGB(255, 0, 0); // 圆的初始颜色红色
fntColor = RGB(0, 0, 255); // 字体的初始颜色蓝色
memset( &fnt, 0, sizeof(LOGFONT) );
fnt.lfHeight = 30; // 字体初始高度30
fnt.lfWeight = 400; // 初始字体浓淡
strcpy(fnt.lfFaceName, "Arial"); // 初始字体名称
}
void CCommonDlgDemoView::OnDraw(CDC* pDC)
{
CCommonDlgDemoDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
CPen mypen;
CPen* oldPen;
mypen.CreatePen(PS_SOLID, 3, crColor); // 创建画笔
oldPen = pDC->SelectObject(&mypen); // 载入画笔
pDC->Ellipse(100, 100, 250, 250); // 画圆
pDC->SelectObject(oldPen);
CFont myfont;
CFont* oldFont;
myfont.CreateFontIndirect(&fnt); // 创建字体
oldFont = pDC->SelectObject(&myfont); // 载入字体
pDC->SetTextColor(fntColor); // 字体的颜色
pDC->TextOut(50, 50, "字体对话框设置字体"); // 输出文字
pDC->SelectObject(oldFont);
}
void CCommonDlgDemoView::OnColor()
{
// TODO: Add your command handler code here
CColorDialog colordialog(crColor, CC_FULLOPEN); // 初始化颜色对话框对象
if(colordialog.DoModal() == IDOK) // 创建颜色对话框
{
crColor = colordialog.m_cc.rgbResult;
Invalidate(TRUE); // 重绘窗口
}
}
void CCommonDlgDemoView::OnFont()
{
// TODO: Add your command handler code here
CFontDialog fontdialog(&fnt); // 初始化字体对象
fontdialog.m_cf.rgbColors = fntColor; // 字体对话框初始化
if(fontdialog.DoModal() == IDOK) // 显示字体对话框
{
fontdialog.GetCurrentFont(&fnt); // 获取字体信息
fntColor = fontdialog.GetColor(); // 获取字体颜色
Invalidate(TRUE); // 重绘窗口
}
}
相关文章推荐
- 颜色对话框CColorDialog,字体对话框CFontDialog使用实例
- 字体对话框使用实例
- GTK+ 消息对话框 属性对话框 字体选择对话框 颜色选择对话框 的使用例子
- 图形的绘制,如何使用自定义画笔(颜色,线宽,线形)。如何为程序中添加选项菜单和选项设置对话框,如何使用标准颜色对话框,如何使用字体对话框,在选项对话框中实现预览功能。实现选项对话框和窗口类中的数据交换。如何改变对话框和控件的背景色,如何改变控件的文本颜色,
- 颜色对话框使用实例
- 文件、颜色、字体标准对话框使用
- [QT]QT教程之实例分析[一]文件 颜色和字体对话框
- [QT]QT教程之实例分析[一]文件 颜色和字体对话框
- .Net学习笔记----2015-07-02(选择文件对话框、保存对话框、字体和颜色对话框)
- MFC如何设置对话框的背景和字体颜色
- 一个WinForm记事本程序(包含主/下拉/弹出菜单/打开文件/保存文件/打印/页面设置/字体/颜色对话框/剪切版操作等等控件用法以及记事本菜单事件/按键事件的具体代码)
- 使用Spannable或Html.fromHtml设置字体、颜色、超链接等
- iOS使用NSMutableAttributedString 实现富文本(不同颜色字体、下划线等)
- 使用Qt 4如何设置QLabe中字体的颜色
- 使用Qt 4如何设置QLabe中字体的颜色
- QT的QMessageBox使用方法(设置字体大小,颜色等)
- javascript改变字体颜色实例
- 使用颜色对话框来取色
- 使用Qt 4如何设置QLabe中字体的颜色
- 修改NavigationBarItem的字体大小和颜色的使用方法