VC如何改变编辑框的背景颜色方法

合集下载

如何在幻灯片中设置幻灯片文本框背景颜色

如何在幻灯片中设置幻灯片文本框背景颜色

如何在幻灯片中设置幻灯片文本框背景颜色在幻灯片中设置幻灯片文本框背景颜色是一项常见的操作,它可以增加幻灯片的美观度和吸引力。

下面将介绍如何在幻灯片中设置幻灯片文本框背景颜色的步骤和技巧。

一、选择并进入幻灯片文本框步骤1:打开你的幻灯片演示文件。

在幻灯片编辑视图中,选择你想要设置文本框背景颜色的幻灯片。

步骤2:点击幻灯片中的文本框,进入编辑模式。

如果不存在文本框,则需要先插入一个文本框。

可以通过“插入”菜单中的“文本框”选项插入一个新的文本框。

二、设置文本框背景颜色步骤3:选择文本框。

点击文本框中的文本时,你会发现文本框周围有一个蓝色的方框,表明它被选中。

确保文本框被选中后,进入“格式”选项卡。

步骤4:在“格式”选项卡中,找到“形状轮廓”或“形状填充”命令组。

具体的名称可能因你使用的幻灯片编辑软件而有所不同。

点击该命令组后,你将看到一系列与形状样式相关的选项。

步骤5:在形状样式选项中,查找并点击“填充色”选项。

这将打开一个颜色选择器,允许你选择文本框的背景颜色。

步骤6:在颜色选择器中,可以选择一种预定义的颜色,也可以使用色盘来自定义颜色。

点击所选颜色后,文本框的背景颜色将立即更改为你选择的颜色。

步骤7:根据需要,可以通过调整透明度滑块来改变文本框背景颜色的透明度。

这可以让背景色更加柔和,以适应不同的幻灯片设计风格。

三、选择适合的颜色在设置幻灯片文本框背景颜色时,有几个因素需要考虑,以确保颜色的选择与演示的整体风格和目的相匹配。

1. 类型与内容:根据幻灯片的内容和用途选择适合的颜色。

例如,对于正式的商务演示,可以选择浅色背景,如白色或浅灰色。

对于创意类演示,可以尝试使用鲜艳且饱满的颜色。

2. 可读性:确保所选的背景颜色不会影响文本的可读性。

如果文本看起来模糊或与背景颜色相似,可以尝试更改文本颜色或选择另一个背景颜色。

3. 统一性:在整个演示中保持一致的颜色选择,以确保幻灯片之间的连贯性。

如果使用了背景图片,需要确保文本框背景的颜色与图片风格相匹配。

vb背景色设置的代码

vb背景色设置的代码

vb背景色设置的代码VB背景色设置的代码VB是一种广泛使用的编程语言,它可以用于开发各种类型的应用程序。

其中,VB的背景色设置是常用的功能之一。

以下是VB背景色设置的代码,帮助您轻松设置自己的应用程序。

一、设置窗体背景色在VB中,您可以使用以下代码设置窗体的背景色:Private Sub Form_Load()Me.BackColor = RGB(192, 192, 192)End Sub代码中,RGB函数用于设置RGB颜色值的背景色。

如果需要设置其他颜色,只需更改RGB函数的参数即可。

二、设置控件背景色您可以使用以下代码设置控件的背景色:Private Sub Command1_Click()Command1.BackColor = RGB(255, 0, 0)End Sub在上面的代码中,当Command1按钮被单击时,将其背景色设置为红色。

同样,您可以使用相同的方法来设置其他控件的背景色(如标签、文本框和列表框等)。

三、设置多个控件背景色如果您要设置多个控件的背景色,可以使用以下代码:Private Sub Form_Load()Dim ctrl As ControlFor Each ctrl In ControlsIf TypeOf ctrl Is CommandButton Thenctrl.BackColor = RGB(255, 0, 0)End IfNextEnd Sub在上面的代码中,将所有的命令按钮背景设置为红色。

通过使用循环语句,可以轻松地设置多个控件的背景色。

总结VB背景色设置的代码非常简单,只需使用RGB函数即可设置控件和窗体的背景色。

通过这些代码,您可以将自己的应用程序与众不同,并满足用户的需求。

如何改变对话框中Edit Box控件的背景色和显示内容的颜色和字体

如何改变对话框中Edit Box控件的背景色和显示内容的颜色和字体

如何改变对话框中Edit Box控件的背景色和显示内容的颜色答:HBRUSH CLogToolDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor){HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);// set edit properitiesif(pWnd->GetDlgCtrlID() == IDC_EDIT_LOG){static HBRUSH hbrEdit = ::CreateSolidBrush(RGB(255, 255, 255));pDC->SetBkColor(RGB(255, 255, 255));pDC->SetTextColor(RGB(0, 0, 255));return hbrEdit;}return hbr;}字体的使用是ActiveX控件制作过程中不可缺少的部分。

本文将深入浅出地介绍在ActiveX 控件中制作过程中如何使用字体。

本文所提及的ActiveX控件制作是指利用VC++6.0的MFC ActiveX ControlWizard 工具,用其它方法制作ActiveX 控件本文不作讨论。

本文专门设置了一些例程,以便您能够更好地掌握这些内容。

这些例程都是完整的ActiveX控件制作源代码。

为了突出重点,本文仅对字体使用相关部分的源代码作较详细的介绍,其余部分的代码本文不作过多讨论。

字体作为一种属性在ActiveX控件中使用,与其它属性没有区别,同样分为库存属性和自定义属性,本文将分四个部分进行介绍。

第一部分在控件中使用库存字体(Stock Font)属性第二部分在控件中使用自定义的字体(Custom Font)属性第三部分使用多种字体第四部分优化代码,合理地使用多种字体第一部分在控件中使用库存字体(Stock Font)属性使用ClassWizard 添加Font库存属性的步骤:打开控件工程, 单击View菜单的ClassWizard打开ClassWizard;单击Automation标签;在Class Name框,选择你的控件类名;单击Add Property;在External name框, 单击Font;单击OK;单击OK确认你的选择并关闭ClassWizard;ClassWizard将在控件类的执行文件的dispatch映射表中加入下列行:DISP_STOCKPROP_FONT()另外, ClassWizard 在.ODL 文件中加入下列行:[id(DISPID_FONT), bindable] IFontDisp* Font;。

vc根据字体对话框和颜色对话框设置控件里的字体和颜色

vc根据字体对话框和颜色对话框设置控件里的字体和颜色

vc 根据字体对话框和颜色对话框设置控件里的字体和颜色vc 根据字体对话框和颜色对话框设置控件里的字体和颜色2009-05-23 10:13:25| 分类:VC&MFC|字号订阅视频教程及其源码下载地址/source/780472 题目:编写一个基于对话框的应用程序,要求其能实现如下功能:(1)可以用来打开及显示文本文件。

(2)可以设置所显示的文本的字体颜色。

★打开Microsoft Visual C++ 6.0 文件->新建选择MFC AppWizard(exe) 输入工程文件名。

这里填写09 点击确定按钮,程序将自动出现MFC应用程序向导选择基本对话框点击完成按钮出现新建工程信息对话框。

点击确定按钮★★★★首先是定义颜色类★★★★★ ★点工具栏->插入->类name 任意填写这里填的是CStatic09 Base class选择CStatic 点击确定按钮。

★鼠标切换左边的类视图区出现09 classes 鼠标左键双击CStatic09 左边将出现N行代码找到class My09Static : public CStatic { // Construction public: My09Static(); 。

在下面输入:private: COLORREF m_ForeColor; //文本颜色COLORREF m_BackColor; //背景色CBrushm_BkBrush; //背景刷public: voidSetForeColor(COLORREF color);//设置文本颜色void SetBkColor(COLORREF color);//设置背景颜色找到protected: //{{AFX_MSG(My09Static) // NOTE - the ClassWizard will add and remove member functions here. /}}AFX_MSG DECLARE_MESSAGE_MAP() 在中间加入afx_msg HBRUSH CtlColor(CDC* pDC, UINT nCtlColor);//消息响应函数效果如下:protected://{{AFX_MSG(My09Static) // NOTE - the ClassWizard will add and remove member functions here. afx_msg HBRUSH CtlColor(CDC* pDC, UINT nCtlColor);//消息响应函数/}}AFX_MSG DECLARE_MESSAGE_MAP() ★点击CStatic09左边的+号按钮出现CStatic09() 右键双击CStatic09() 左边将出现N行代码找到CStatic09::CStatic09() { } 在大括号与小括号之间输入://文字颜色m_ForeColor =GetSysColor( COLOR_BTNTEXT ); //背景色m_BackColor = GetSysColor( COLOR_BTNFACE ); //背景刷m_BkBrush.CreateSolidBrush(m_BackColor); 找到BEGIN_MESSAGE_MAP(My09Static, CStatic)//{{AFX_MSG_MAP(My09Static) // NOTE - the ClassWizard will add and remove mapping macros here. //}}AFX_MSG_MAP END_MESSAGE_MAP() 在中间输入ON_WM_CTLCOLOR_REFLECT()//颜色宏定义效果如下BEGIN_MESSAGE_MAP(My09Static, CStatic)//{{AFX_MSG_MAP(My09Static) // NOTE - the ClassWizard will add and remove mapping macros here. ON_WM_CTLCOLOR_REFLECT()//颜色宏定义//}}AFX_MSG_MAP END_MESSAGE_MAP() 最后找到///////////////////////////////////////////////////////////////////////////// // CStatic09 message handlers 在下面输入HBRUSH CStatic09::CtlColor(CDC* pDC, UINT nCtlColor){ pDC->SetTextColor( m_ForeColor );pDC->SetBkColor( m_BackColor ); return (HBRUSH)m_BkBrush.GetSafeHandle(); } void CStatic09::SetForeColor(COLORREF color) //设置文本颜色{ m_ForeColor = color; } voidCStatic09::SetBkColor(COLORREF color) //设置背景颜色{ m_BackColor = color; m_BkBrush.Detach();m_BkBrush.CreateSolidBrush( m_BackColor ); } 设置对话框代码找到类视图中的CMu09Dlg,双击后显示代码。

如何更改MFC按钮的背景色

如何更改MFC按钮的背景色

今天打算给自己写的工程上点色。

但是在给按钮上色的时候出了点问题。

在网上找的方法基本上都不管用。

说得跟真的一样,各种OnCtrlColor()和OnEraseBkground(),各种技术帝的方法看起来都很厉害,但是都不管用。

真正有用的办法是自定义button,才能实现按钮颜色。

但是这个办法不免有些复杂,我这么懒的人,既不想为这么个小功能去重写一个类,也不想使用第三方的按钮类,所以只能另辟蹊径了。

所幸在codeproject上又找到了一个大神写的教程。

使用CMFCButton便可以实现这种功能。

接下来简单介绍一下CMFCButton的用法。

建立一个基于对话框的工程MFCButtonTest。

在对话框编辑界面中,拖入一个button控件,改资源ID号为IDC_BUTTON_TEST。

接下来,在CMFCButtonTestDlg::OnInitDialog()中添加如下代码:CMFCButton * button = new CMFCButton;button->Create(_T("Test Button"),WS_VISIBLE,CRect(5, 5, 80, 50),this,IDC_BUTTON_TEST);注意!!这个行为是错误的,会有内存泄漏,只为写个例子,真实工程中不允许这种写法。

好了,运行一下吧,会看到屏幕上出现了两个按钮。

但是不用担心,TestButton就是Button1,Button1就是TestButton,他们共享同一个资源号。

也可以说TestButton其实是Button1的“影分身”,在对话框编辑界面中是看不到的。

那么解决方案就简单啦,在对话框编辑界面中把Button1的Visible属性设为False便可以了。

Tips: 这样一来,可以创建多个CMFCButton,都使用同一个ID号,那么他们可以分散在世界各地,而且还能运行同一段代码,真够帅气!再次运行。

vscode自定义背景颜色

vscode自定义背景颜色

vscode⾃定义背景颜⾊⼤概做前端的builder(只会打代码的才是coder,嘻嘻~)⼀半以上都会使⽤vscode编辑代码吧,vscode很轻量,⽀持的⽂件拖拽加⼊编辑区功能我个⼈认为很⽅便很强⼤。

下⾯我写⼀下怎么更改vscode的背景图让⾃⼰的眼睛更舒服⼀些。

1. ⾸先vscode的背景颜⾊的定义都是放在每个主题的⽂件⾥⾯的,所以我们是⽆法通过设置来更改背景颜⾊的。

2. 那就只能进⼊到相应的主题⽂件内部去进⾏更改喽。

3. 我⽐较喜欢vscode的light主题⾥⾯的Solarized light这个主题,因为它的背景⾊是那种温和的⼩麦黄(*^▽^*),但是我⼜发现这个主题的代码⾼亮功能不是很好,⽽Quite Light主题的代码⾼亮功能就好⼀些,但是听到Quite Light这个词是不是就已经感到刺眼的光芒了呢?( Ĭ ^ Ĭ )。

4. 那么有没有既能保证眼睛舒服,⼜可以保证代码⾼亮,还能⽐较⽅便的进⾏更改的⽅法呢?当然有了啊,要不然我写个啥⼦哦。

5. 直接选择Quite light主题,然后把这个主题的背景颜⾊改为⼩麦黄(或者你喜欢的颜⾊就可以了)下⾯就进⾏实操了:1.找到vscode所在的⽂件夹,找到如路径:(⼀般进⾏默认安装的都是这个路径吧)2. 使⽤vscode打开json⽂件3. 使⽤查找功能,输⼊:editor ,更改editor.background属性的值为⼩麦⾊就可以了。

4. ⼩麦⾊可以百度到或者⽤PS取⾊器取⼀下,我采取的办法是取⾊,不过是⽤的⼀个⽐较轻量级也很好⽤的切图软件pxcook(百度⼀下你就知道)5. 这时候保存⽂件可能会没有权限保存,没事,把当前更改的⽂件保存到桌⾯上,然后再与原来⽂件夹中的⽂件交换⼀下就可以啦(我好机智啊)6. 重新打开vscode,恭喜您喜提⼩麦⾊vscode⼀枚,嘿嘿。

改变CButton背景颜色(自绘CButton)---VC(转)

改变CButton背景颜⾊(⾃绘CButton)---VC(转)这是⼀个实现⾃绘CButton的类,期望对⼤家有点帮助,我提供这个类,只是为⼤家提供⼀个⾃绘控件的思路,你可以在此基础上,随意地修改代码,直到它能完成你所需要的功能.其它控件的⾃绘,原理了和这个差不多.#if !defined(AFX_BUTTONST_H__1271FF9C_E28C_4D3B_B429_AFE65924A5D0__INCLUDED_)#define AFX_BUTTONST_H__1271FF9C_E28C_4D3B_B429_AFE65924A5D0__INCLUDED_#if _MSC_VER > 1000#pragma once#endif // _MSC_VER > 1000// ButtonST.h : header file///// CButtonST windowclass CButtonST : public CButton{// Constructionpublic:CButtonST();// Attributespublic:// Operationspublic://设置背景颜⾊void SetBkColor(COLORREF BkColor);//设置⿏标在按钮上的偏移颜⾊void SetShOffset(int nShOffset);//设置字体颜⾊void SetTextColor(COLORREF TextColor);//设置⽹页链接void SetURL(CString strURL);//设置背景图⽚void SetBkPicture(CBitmap *pBitMap);// Overrides// ClassWizard generated virtual function overrides//{{AFX_VIRTUAL(CButtonST)public:virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);virtual BOOL Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext = NULL);protected:virtual BOOL PreCreateWindow(CREATESTRUCT& cs);virtual void PreSubclassWindow();//}}AFX_VIRTUAL// Implementationpublic:virtual ~CButtonST();void DrawItem1(LPDRAWITEMSTRUCT lpDrawItemStruct);// Generated message map functionsprotected://{{AFX_MSG(CButtonST)afx_msg void OnMouseMove(UINT nFlags, CPoint point);afx_msg BOOL OnNcActivate(BOOL bActive);afx_msg void OnNcMouseMove(UINT nHitTest, CPoint point);afx_msg void OnKillFocus(CWnd* pNewWnd);afx_msg void OnLButtonDown(UINT nFlags, CPoint point);//}}AFX_MSGprotected://⿏标是否在按钮上⾯BOOL m_IsPressed;COLORREF m_BkColor;int m_nShOffset;COLORREF m_TextColor;CString m_strURL;CBitmap *m_pBitMapBK;protected://背景颜⾊偏移COLORREF OffsetColor(COLORREF color,int nOffset);//⿏标离开LRESULT OnMouseLeave(WPARAM wParam, LPARAM lParam);DECLARE_MESSAGE_MAP()};///{{AFX_INSERT_LOCATION}}// Microsoft Visual C++ will insert additional declarations immediately before the previous line.#endif // !defined(AFX_BUTTONST_H__1271FF9C_E28C_4D3B_B429_AFE65924A5D0__INCLUDED_)// ButtonST.cpp : implementation file//#include "stdafx.h"#include "ContrlST.h"#include "ButtonST.h"#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE[] = __FILE__;#endif#define BS_TYPEMASK SS_TYPEMASK/// CButtonSTCButtonST::CButtonST(){m_IsPressed = FALSE;m_BkColor = RGB(216,233,216);m_nShOffset = 30;m_TextColor = RGB(0,0,0);m_strURL = "";m_pBitMapBK = NULL;}CButtonST::~CButtonST(){if(m_pBitMapBK!=NULL){delete m_pBitMapBK;m_pBitMapBK = NULL;}}BEGIN_MESSAGE_MAP(CButtonST, CButton)//{{AFX_MSG_MAP(CButtonST)ON_WM_MOUSEMOVE()ON_WM_NCACTIVATE()ON_WM_NCMOUSEMOVE()ON_WM_KILLFOCUS()ON_MESSAGE(WM_MOUSELEAVE, OnMouseLeave) ON_WM_LBUTTONDOWN()//}}AFX_MSG_MAPEND_MESSAGE_MAP()/// CButtonST message handlers//设置背景颜⾊void CButtonST::SetBkColor(COLORREF BkColor) {m_BkColor = BkColor;this->Invalidate();}//设置⿏标在按钮上的偏移颜⾊void CButtonST::SetShOffset(int nShOffset){m_nShOffset = nShOffset;this->Invalidate();}//设置字体颜⾊void CButtonST::SetTextColor(COLORREF TextColor) {m_TextColor = TextColor;this->Invalidate();}//设置⽹页链接void CButtonST::SetURL(CString strURL){m_strURL = strURL;}//设置背景图⽚void CButtonST::SetBkPicture(CBitmap *pBitMap){if(m_pBitMapBK==pBitMap)return;if(m_pBitMapBK!=NULL){delete m_pBitMapBK;m_pBitMapBK = pBitMap;}m_pBitMapBK = pBitMap;this->Invalidate();}//背景颜⾊偏移COLORREF CButtonST::OffsetColor(COLORREF color,int nOffset){BYTE byRed = 0;BYTE byGreen = 0;BYTE byBlue = 0;short shOffsetR = nOffset;short shOffsetG = nOffset;short shOffsetB = nOffset;if (nOffset < -255 || nOffset > 255){nOffset = 30;}// Get RGB components of specified colorbyRed = GetRValue(color);byGreen = GetGValue(color);byBlue = GetBValue(color);// Calculate max. allowed real offsetif (nOffset > 0){if (byRed + nOffset > 255) shOffsetR = 255 - byRed;if (byGreen + nOffset > 255) shOffsetG = 255 - byGreen; if (byBlue + nOffset > 255) shOffsetB = 255 - byBlue;nOffset = min(min(shOffsetR, shOffsetG), shOffsetB);}else{if (byRed + nOffset < 0) shOffsetR = -byRed;if (byGreen + nOffset < 0) shOffsetG = -byGreen;if (byBlue + nOffset < 0) shOffsetB = -byBlue;nOffset = max(max(shOffsetR, shOffsetG), shOffsetB);}int r,g,b;r = byRed + nOffset;g =byGreen + nOffset;b =byBlue + nOffset;return RGB(r,g,b);}void CButtonST::DrawItem1(LPDRAWITEMSTRUCT lpDrawItemStruct)void CButtonST::DrawItem1(LPDRAWITEMSTRUCT lpDrawItemStruct){// TODO: Add your code to draw the specified itemCDC* pDC = CDC::FromHandle(lpDrawItemStruct->hDC);CRect rect = lpDrawItemStruct->rcItem;CRect offRect = rect;int ndist = 2;offRect.left+= ndist;offRect.right -=ndist;offRect.top += ndist;offRect.bottom -=ndist;pDC->SetBkMode(TRANSPARENT);pDC->SetTextColor(m_TextColor);//绘制背景if(m_pBitMapBK!=NULL){CDC* pNewDC = new CDC;pNewDC->CreateCompatibleDC(pDC);pNewDC->SelectObject(m_pBitMapBK);BITMAP bmp;m_pBitMapBK->GetBitmap(&bmp);if(m_IsPressed){pDC->StretchBlt(0,0,rect.Width(),rect.Height(),pNewDC,0,0,bmp.bmWidth,bmp.bmHeight,SRCCOPY); }else{CBrush brush(RGB(220,220,220));//RGB(m_nShOffset,m_nShOffset,m_nShOffset));pDC->FillRect(&rect,&brush);pDC->StretchBlt(0,0,rect.Width(),rect.Height(),pNewDC,0,0,bmp.bmWidth,bmp.bmHeight,SRCAND); }delete pNewDC;pNewDC = NULL;}else{if(m_IsPressed){CBrush brush(OffsetColor(m_BkColor,m_nShOffset));pDC->FillRect(rect,&brush);CBrush brush1(RGB(128,128,128));pDC->FrameRect(rect,&brush1);pDC->FrameRect(offRect,&brush1);}else{CBrush brush(m_BkColor);pDC->FillRect(rect,&brush);CBrush brush1(RGB(128,128,128));pDC->FrameRect(offRect,&brush1);pDC->FrameRect(offRect,&brush1);}}CString sTitle;GetWindowText(sTitle);offRect.OffsetRect(0,rect.Height()/2-8);// pDC->DrawText(sTitle, sTitle.GetLength(),offRect, DT_WORDBREAK | DT_CENTER); pDC->DrawText(sTitle, sTitle.GetLength(),offRect, DT_WORDBREAK|DT_CENTER);}void CButtonST::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct){// TODO: Add your code to draw the specified itemDrawItem1(lpDrawItemStruct);return;CDC* pDC = CDC::FromHandle(lpDrawItemStruct->hDC);CRect rect = lpDrawItemStruct->rcItem;CRect offRect = rect;int ndist = 2;offRect.left+= ndist;offRect.right -=ndist;offRect.top += ndist;offRect.bottom -=ndist;CDC* pResetDC=new CDC();pResetDC->CreateCompatibleDC(pDC);CBitmap bitmap;bitmap.CreateCompatibleBitmap(pDC,rect.Width(),rect.Height());pResetDC->SelectObject(&bitmap);pResetDC->SetBkMode(TRANSPARENT);pResetDC->SetTextColor(m_TextColor);//绘制背景if(m_pBitMapBK!=NULL){CDC* pNewDC = new CDC;pNewDC->CreateCompatibleDC(pResetDC);pNewDC->SelectObject(m_pBitMapBK);BITMAP bmp;m_pBitMapBK->GetBitmap(&bmp);if(m_IsPressed){pResetDC->StretchBlt(0,0,rect.Width(),rect.Height(),pNewDC,0,0,bmp.bmWidth,bmp.bmHeight,SRCCOPY); }else{CBrush brush(RGB(220,220,220));//RGB(m_nShOffset,m_nShOffset,m_nShOffset));pResetDC->FillRect(&rect,&brush);pResetDC->StretchBlt(0,0,rect.Width(),rect.Height(),pNewDC,0,0,bmp.bmWidth,bmp.bmHeight,SRCAND); }delete pNewDC;pNewDC = NULL;}else{if(m_IsPressed){CBrush brush(OffsetColor(m_BkColor,m_nShOffset));pResetDC->FillRect(rect,&brush);CBrush brush1(RGB(128,128,128));pResetDC->FrameRect(rect,&brush1);pResetDC->FrameRect(offRect,&brush1);}else{CBrush brush(m_BkColor);pResetDC->FillRect(rect,&brush);CBrush brush1(RGB(128,128,128));pResetDC->FrameRect(offRect,&brush1);}}CString sTitle;GetWindowText(sTitle);offRect.OffsetRect(0,rect.Height()/2-8);// pDC->DrawText(sTitle, sTitle.GetLength(),offRect, DT_WORDBREAK | DT_CENTER);pResetDC->DrawText(sTitle, sTitle.GetLength(),offRect, DT_CENTER);pDC->StretchBlt(0,0,rect.Width(),rect.Height(),pResetDC,0,0,rect.Width(),rect.Height(),SRCCOPY);delete pResetDC;}void CButtonST::OnMouseMove(UINT nFlags, CPoint point){// TODO: Add your message handler code here and/or call defaultTRACKMOUSEEVENT csTME;csTME.cbSize = sizeof(csTME);csTME.dwFlags = TME_LEAVE;csTME.hwndTrack = m_hWnd;::_TrackMouseEvent(&csTME);if(m_IsPressed==FALSE){m_IsPressed = TRUE;this->Invalidate();}CButton::OnMouseMove(nFlags, point);}BOOL CButtonST::OnNcActivate(BOOL bActive){// TODO: Add your message handler code here and/or call defaultreturn CButton::OnNcActivate(bActive);}void CButtonST::OnNcMouseMove(UINT nHitTest, CPoint point){// TODO: Add your message handler code here and/or call defaultCButton::OnNcMouseMove(nHitTest, point);}void CButtonST::OnKillFocus(CWnd* pNewWnd){CButton::OnKillFocus(pNewWnd);// TODO: Add your message handler code here}LRESULT CButtonST::OnMouseLeave(WPARAM wParam, LPARAM lParam){m_IsPressed = FALSE;this->Invalidate();return 0;} // End of OnMouseLeaveBOOL CButtonST::Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext){// TODO: Add your specialized code here and/or call the base classdwStyle |= BS_OWNERDRAW;return CWnd::Create(lpszClassName, lpszWindowName, dwStyle, rect, pParentWnd, nID, pContext);}void CButtonST::OnLButtonDown(UINT nFlags, CPoint point){// TODO: Add your message handler code here and/or call defaultif(m_strURL.IsEmpty()==FALSE){SHELLEXECUTEINFO csSEI;memset(&csSEI, 0, sizeof(csSEI));csSEI.cbSize = sizeof(SHELLEXECUTEINFO);csSEI.fMask = SEE_MASK_FLAG_NO_UI;csSEI.lpVerb = _T("open");csSEI.lpFile = m_strURL;csSEI.nShow = SW_SHOWMAXIMIZED;::ShellExecuteEx(&csSEI);}CButton::OnLButtonDown(nFlags, point);}BOOL CButtonST::PreCreateWindow(CREATESTRUCT& cs){// TODO: Add your specialized code here and/or call the base classreturn CButton::PreCreateWindow(cs);}void CButtonST::PreSubclassWindow(){// TODO: Add your specialized code here and/or call the base classModifyStyle(BS_TYPEMASK, BS_OWNERDRAW, SWP_FRAMECHANGED); CButton::PreSubclassWindow();}。

VisualC++MFC精多练实现多颜色边框的编框CEdit

传统编辑框是没有各种颜色的,VC6中实现不同颜色的编辑框,也不是大难事。

以CEdit类为基类派生CColourEdit类,然后设置WM_CTLCOLOR消息,使用FrameRect函数重绘编辑框的边框。

FrameRect函数原型如下:void FrameRect(LPCRECT lpRect, CBrush* pBrush);具体可以查看MSDN里的参考。

新建一个建立对话框的应用程序,向窗体中添加8个编辑框控制。

通过New Class窗口生成一个新类CColourEdit,基类为CEdit。

添加一个COLORREF类型的成员变量 m_Colour。

1.HBRUSH CColourEdit::CtlColor(CDC* pDC, UINT nCtlColor)2.{3.CDC* dc = GetDC(); //获取画布对象4.CRect rect;5.GetClientRect(rect); //获取客户区域6.rect.InflateRect(1,1,1,1);//将客户区域增大一个像素7.CBrush brush (m_Colour);//创建画刷8.dc->FrameRect(rect,&brush);//绘制边框9.10.return NULL;11.}复制代码VC++/MFC精讲多练#002:如何改变编辑框CEdit中文字的颜色实现应用中,改变编辑框中文字的颜色是很常用的一个技巧,可以使用SetTextColor函数改变编辑框中文本的颜色,通过对消息WM_CTLCOLOR的响应函数来实现对SetTextColor函数的调用。

在控件被显示之前,WM_CTLCOLOR消息被发送到控件所在的对话框,这个消息的响应函数会修改对话框及其中控件的颜色。

该消息的响应函数原型为:afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);SetTextColor函数的原型为: virtual COLORREF SetTextColor(COLORREF crColor);具体参数含义及其取值,请参考MSDN。

VC++界面美化


file:///C|/Documents and Settings/Administrator/桌面/新建 Microsoft Word 文档1.html[2011-3-15 19:35:24]
VC++界面美化 point.x = rtWnd.Width(); point.y = GetSystemMetrics(SM_CYFRAME); pDC->PatBlt(0, rtWnd.Height()-point.y, point.x, point.y, PATCOPY); // 填充右侧框架 point.x = GetSystemMetrics(SM_CXFRAME); point.y = rtWnd.Height(); pDC->PatBlt(rtWnd.Width()-point.x, 0, point.x, point.y, PATCOPY); // 重画标题栏图标 m_rtIcon.left = rtTitle.left ; m_rtIcon.top = rtTitle.top; m_rtIcon.right = m_rtIcon.left + 16; m_rtIcon.bottom = m_rtIcon.top + 15; ::DrawIconEx(pDC->m_hDC, m_rtIcon.left, m_rtIcon.top, AfxGetApp()>LoadIcon(IDR_MAINFRAME), m_rtIcon.Width(), m_rtIcon.Height(), 0, NULL, DI_NORMAL); m_rtIcon.OffsetRect(rtWnd.TopLeft()); CBitmap* pBitmap = new CBitmap; CBitmap* pOldBitmap; CDC* pDisplayMemDC=new CDC; pDisplayMemDC->CreateCompatibleDC(pDC); // 重画关闭button rtButtons.left = rtTitle.right - 16; rtButtons.top = rtTitle.top - 1; rtButtons.right = rtButtons.left + 16; rtButtons.bottom = rtButtons.top + 15; pBitmap->LoadBitmap(IDB_EXIT_FOCUS); pOldBitmap=(CBitmap*)pDisplayMemDC->SelectObject(pBitmap); pDC->BitBlt(rtButtons.left, rtButtons.top, rtButtons.Width(), rtButtons.Height(), pDisplayMemDC, 0, 0, SRCCOPY); pDisplayMemDC->SelectObject(pOldBitmap); m_rtButtExit = rtButtons; m_rtButtExit.OffsetRect(rtWnd.TopLeft()); pBitmap->DeleteObject(); // 重画最大化/ 恢复button rtButtons.right = rtButtons.left - 3; rtButtons.left = rtButtons.right - 16; if (IsZoomed()) pBitmap->LoadBitmap(IDB_RESTORE_NORMAL); else pBitmap->LoadBitmap(IDB_MAX_NORMAL); pOldBitmap=(CBitmap*)pDisplayMemDC->SelectObject(pBitmap); pDC->BitBlt(rtButtons.left, rtButtons.top, rtButtons.Width(), rtButtons.Height(), pDisplayMemDC, 0, 0, SRCCOPY); pDisplayMemDC->SelectObject(pOldBitmap);

visio怎么设置背景颜色?

visio怎么设置背景颜⾊?
visio想要修改⽂件的背景⾊,因为⽂稿默认背景⾊为空⽩的,这想要修改背景颜⾊,该怎么修改呢?下⾯我们就来看看详细的教程。

Microsoft Visio 2013 官⽅正式版(64位)
类型:办公软件
⼤⼩:809MB
语⾔:简体中⽂
时间:2018-11-11
查看详情
1、使⽤visio软件的形状,添加⼀个图形到visio软件界⾯。

2、在visio的功能区,点击设计按钮。

3、点击visio软件的设计按钮后,点击背景图标。

4、点击设计按钮后,选择背景图标。

5、在背景菜单中,选取⼀个背景。

6、便于⽂件的名称标注,选择⼀个边框。

7、选择背景和边框后,visio⽂件的背景颜⾊就设置完成了。

以上就是visio设置背景颜⾊的教程,希望⼤家喜欢,请继续关注。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

VC如何改变编辑框的背景颜色方法
这里介绍的改变文本编辑框的背景颜色的方法不需要对CEdit生成新的类,步骤如下:
(1) 新建一个基于对话框的MFC应用程序,程序名称为Test;
(2) 在对话框上添加两个文本框,ID分别为IDC_EDIT1和IDC_EDIT2;
(3) 在CTestDlg的头文件中添加几个成员变量,如下所示;
class CTestDlg : public CDialog
{
protected:
CBrushm_redbrush,m_bluebrush;
COLORREF m_redcolor,m_bluecolor,m_textcolor;
};
(4) 在CTestDlg.cpp文件的BOOL CTestDlg::OnInitDialog()中添加以下代码:
BOOL CTestDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon

m_redcolor=RGB(255,0,0); // 红色
m_bluecolor=RGB(0,0,255); // 蓝色
m_textcolor=RGB(255,255,255); // 文本颜色设置为白色
m_redbrush.CreateSolidBrush(m_redcolor); // 红色背景色
m_bluebrush.CreateSolidBrush(m_bluecolor); // 蓝色背景色
return TRUE; // return TRUE unless you set the focus to a control
}
(5) 右击对话框空白面,点到右侧属性对话框,点击闪电图标后面的消息图标,为
WM_CTLCOLOR添加消息响应函数,编辑代码如下:
HBRUSH CTestDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);

// TODO: Change any attributes of the DC here
switch (nCtlColor) //对所有同一类型的控件进行判断
{
// process my edit controls by ID.
case CTLCOLOR_EDIT:
case CTLCOLOR_MSGBOX://假设控件是文本框或者消息框,则进入下一个switch
switch (pWnd->GetDlgCtrlID())//对某一个特定控件进行判断
{
// first CEdit control ID
case IDC_EDIT1: // 第一个文本框
// here
pDC->SetBkColor(m_bluecolor); // change the background
// color [background colour
// of the text ONLY]
pDC->SetTextColor(m_textcolor); // change the text color
hbr = (HBRUSH) m_bluebrush; // apply the blue brush
// [this fills the control
// rectangle]
break;
// second CEdit control ID
case IDC_EDIT2: // 第二个文本框
// but control is still
// filled with the brush
// color!
pDC->SetBkMode(TRANSPARENT); // make background
// transparent [only affects
// the TEXT itself]
pDC->SetTextColor(m_textcolor); // change the text color
hbr = (HBRUSH) m_redbrush; // apply the red brush
// [this fills the control
// rectangle]
break;
default:
hbr=CDialog::OnCtlColor(pDC,pWnd,nCtlColor);
break;
}
break;
}
// TODO: Return a different brush if the default is not desired
return hbr;
}
注:case的类别有以下几种:
CTLCOLOR_BTN 按钮控件
CTLCOLOR_DLG 对话框
CTLCOLOR_EDIT 编辑框
CTLCOLOR_LISTBOX 列表框
CTLCOLOR_MSGBOX 消息框
CTLCOLOR_SCROLLBAR 滚动条
CTLCOLOR_STATIC 静态文本
以上方法,对只读的编辑框无效!
在一位大侠的帮助下,终于找到了改变只读编辑框背景的方法:
参考帮助文档“WM_CTLCOLOREDIT”条目下的内容。是说ReadOnly和disabled不发送
CTLCOLOR_EDIT。但它发送„CTLCOLOR_STATIC‟。
if((nCtlColor == CTLCOLOR_EDIT) || (nCtlColor == CTLCOLOR_STATIC))&&(*pWnd
== m_ReadyOnlyEdit) { 。。。。 }
但是本方法不适用于多行,继续探索,呵呵~

相关文档
最新文档