visual c++-VISUAL C++ 6。0变幻字体

问题描述

VISUAL C++ 6。0变幻字体

在网上找到了这么一段代码,但是怎么用在对话框中?

//-----------------以下为MyEdit.h---------------------------------------------
#pragma once
// CMyEdit
class CMyEdit : public CEdit
{
DECLARE_DYNAMIC(CMyEdit)
public:
CMyEdit();
virtual ~CMyEdit();
protected:
DECLARE_MESSAGE_MAP()
public:
void SetBackColor(COLORREF rgb);//设置文本框背景色
void SetTextColor(COLORREF rgb);//设置文本框的字体颜色
void SetTextFont(const LOGFONT &lf);//设置字体
COLORREF GetBackColor(void){return m_crBackGnd;}//获取当前背景色
COLORREF GetTextColor(void){return m_crText;}//获取当前文本色
BOOL GetTextFont(LOGFONT &lf);//获取当前字体
private:
COLORREF m_crText;//字体的颜色
COLORREF m_crBackGnd;//字体的背景颜色
CFont m_font;//字体
CBrush m_brBackGnd;//整个文本区的画刷
//控件自己的消息反射函数CtlColor,绘制控件之前调用
afx_msg HBRUSH CtlColor(CDC* pDC, UINT nCtlColor);
};
//---------------以下为MyEdit.cpp-------------------------------------------
#include "stdafx.h"
#include "MyEdit.h"
// CMyEdit
IMPLEMENT_DYNAMIC(CMyEdit, CEdit)
CMyEdit::CMyEdit()
{
//初始化为系统字体和窗口颜色
m_crText = GetSysColor(COLOR_WINDOWTEXT);
m_crBackGnd = GetSysColor(COLOR_WINDOW);
m_font.CreatePointFont(90,"宋体");
m_brBackGnd.CreateSolidBrush(GetSysColor(COLOR_WINDOW));
}
CMyEdit::~CMyEdit()
{
}

BEGIN_MESSAGE_MAP(CMyEdit, CEdit)
//WM_CTLCOLOR的消息反射
ON_WM_CTLCOLOR_REFLECT()
END_MESSAGE_MAP()
// CMyEdit 消息处理程序
void CMyEdit::SetBackColor(COLORREF rgb)
{
//设置文字背景颜色
m_crBackGnd = rgb;
//释放旧的画刷
if (m_brBackGnd.GetSafeHandle())
m_brBackGnd.DeleteObject();
//使用文字背景颜色创建新的画刷,使得文字框背景和文字背景一致
m_brBackGnd.CreateSolidBrush(rgb);
//redraw
Invalidate(TRUE);
}
void CMyEdit::SetTextColor(COLORREF rgb)
{
//设置文字颜色
m_crText = rgb;
//redraw
Invalidate(TRUE);
}
void CMyEdit::SetTextFont(const LOGFONT &lf)
{
//创建新的字体,并设置为CEDIT的字体
if(m_font.GetSafeHandle())
{
m_font.DeleteObject();
}
m_font.CreateFontIndirectA(&lf);
CEdit::SetFont(&m_font);
//redraw
Invalidate(TRUE);
}
BOOL CMyEdit::GetTextFont(LOGFONT &lf)
{
if(m_font.GetLogFont(&lf)!=0)
{ return TRUE; }
return FALSE;
}
HBRUSH CMyEdit::CtlColor(CDC* pDC, UINT nCtlColor)
{
//刷新前更改文本颜色
pDC->SetTextColor(m_crText);
//刷新前更改文本背景
pDC->SetBkColor(m_crBackGnd);
//返回画刷,用来绘制整个控件背景
return m_brBackGnd;
}

解决方案

class CMyEdit : public CEdit
这是派生了一个CMyEdit

加入这个文件作为源代码

找到你的对话框,把你的文本框变量类型由CEdit全部修改为CMyEdit

解决方案二:

加上#include "MyEdit.h"

时间: 2024-12-27 04:27:23

visual c++-VISUAL C++ 6。0变幻字体的相关文章

mfc界面美化-VC6.0 MFC字体设置(静态文本)

问题描述 VC6.0 MFC字体设置(静态文本) 怎么设置字体,包括静态文本,编辑框,按钮上的,还有一些美化窗口界面的,初学者,希望详解,代码 解决方案 你这种情况真的没遇到过,联系您使用搜索引擎关键字进行搜索,然后每页翻找仔细看看,相信功夫不负有心人,会有你要的答案的. 解决方案二: 创建一个CFont对象,然后重绘你要修改字体的控件

visual studio-VS2015中MFC的添加变量字体异常的大怎么解决

问题描述 VS2015中MFC的添加变量字体异常的大怎么解决 如图所示 解决方案 字体异常大是什么意思?改vs显示字体可以在vs的工具,选项,环境,字体和颜色里面改 解决方案二: 你这个是你系统的字体 DPI还有VS的设置字体等检查一下 解决方案三: 按住ctrl 和滑轮组合 可以调节的

哪位高手可以解释下visual studio中C#中的不同字体颜色代表什么意思

问题描述 哪位高手可以详细解释下visualstudio中C#中的不同字体颜色代表什么意思?如果方便的话,请顺便解释下那些不同的图标代表什么意思,谢谢!BTW,如果发错帖子了,请斑竹帮助删除,谢谢! 解决方案 解决方案二:同问...解决方案三:是编辑器里面的字体颜色吗?常见的就是蓝色表示关键字,绿色表示自定义类型吧,可以看Tools->Options,里面的Environment->FontsandColors里面的设置啊.解决方案四:该回复于2008-04-10 10:28:21被版主删除解

visual c++-Visual C++中内嵌汇编的问题

问题描述 Visual C++中内嵌汇编的问题 如下,是一个利用内嵌汇编实现的两整数交换的程序.输出结果是2,1;2,1;1,2;2,1.可以看到Swap2这个函数行不通,在函数内两个变量确实交换了,但是调用后a和b没有交换,仍然是2,1.就像是传值一样,而没有传址,令我很困惑. #include <cstdio> void Swap1(int &_int1, int &_int2); void Swap2(int &_int1, int &_int2); in

visual c++-VISUAL C++编辑功能下的占到行号怎么弄

问题描述 VISUAL C++编辑功能下的占到行号怎么弄 弄的是对话框界面,不是文档试图,有一个CEDIT,一个菜单,请写出完整代码,谢谢了 解决方案 char ch1[100000]; GetDlgItem(IDC_EDIT1)->GetWindowText(ch1,100000); int pos = 0; for (int i = 0; i < 100000; i++) { if (ch1[i] == 'n') pos++; if (pos == 行号) break; } GetDlgI

visual c++-VISUAL C++开发对话框的两个疑问

问题描述 VISUAL C++开发对话框的两个疑问 MFC不使用DOC/VIW模式,如何用CFile读取文本文件,并且显示在CEdit上.另外CEdit的高度怎么设置? 解决方案 http://xiaojun123hello.blog.163.com/blog/static/361666562011101933326392/http://www.cnblogs.com/ty--90/archive/2008/02/20/1075276.html

visual studio-Microsoft Visual Studio C# Express Debug 不弹出异常了

问题描述 Microsoft Visual Studio C# Express Debug 不弹出异常了 我碰到的问题是,在F5(start Debugging)的情况下,程序中应该出现异常的地方不出现了,表现为碰到异常后程序自动结束当前方法,不报任何错误,连我自己写的throw new Exception()都直接跳过,为我的调试工作带来极大困扰.我使用的是Microsoft Visual Studio C# Express 2010,重装也不行,应该是系统哪里出了点问题.编译后的软件在系统里

centos7.0 安装字体库

最近在centos7.0下用itextpdf将word文档转成pdf时出现字体丢失的情况.网上找了很多资料,各式各样的原因和解决方法.后来经过一番测试发现是centos7.0 minimal没有安装相应的字体库导致itextpdf转换时出现字体丢失.下面记录下centos7下安装字体库的方法. 安装字体管理工具: yum install -y fontconfig mkfontscale 1) Windows下的ttf字体与GNOME是兼容的!因而可以将C:\Windows\Fonts下的字体打

HTML 4.0 语法字体标签

 [标题标签] 使用方法:<h1>标题内容</h1> 标签解说:标题的大小一共有六种,两个标签一组,也就是从<h1>到<h6>,<h1>最大,<h6>最小.使用标题标签时,该标签会将字体变成粗体字,并且会自成一行. 使用范例: [设定字体大小标签] 使用方法:<font size=3>文字内容</font> 标签解说:标题的大小一共有七种,也就是<font size=1>(最小)到<font