程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程解疑 >> visual c++-VISUAL C++ 6。0變幻字體

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved