CDialogEx对话框 .

 

对话框是MFC中常用的窗口之一,而MFC对话框的默认的样式在很多应用中都显得很单调,如何对对话框的样式和风格进行修改是很多开发者需要面临的问题,本文从MFC的CDialog派生出自己的对话框样式,给出了很多改变对话框样式的函数,通过调用这些函数,就可以很好的改变对话框的各种风格。

 

主要的函数有:

 

//设置背景刷

void SetDlgBKBrush( CBrush* pBrush );

 

//设置背景颜色

void SetDlgBKColor( COLORREF clrBk );

 

//设置对话框字体

void SetFont( CFont* pFont );

 

//这只标题栏文字的位置,CAPTIONTEXT_LEFT,CAPTIONTEXT_CENTER,CAPTIONTEXT_RIGHT

void SetCaptinTextPosition(int positionType);

 

//设置标题文字的颜色,激活状态,非激活状态

void SetCaptionTextColor(COLORREF clrActiveCaptionText,COLORREF clrInactiveCaptionText);

 

//设置标题栏颜色,激活和非激活状态

void SetCaptionBarColor(COLORREF clrActiveCaptionBar,COLORREF clrInactiveCaptionBar);

 

//设置边框的位图,参数为各个边框图的路径

BOOL SetBorderBmp(LPCTSTR lpbmpLeft,LPCTSTR lpbmpRight,LPCTSTR lpbmpBottom)

 

//设置边框的位图,参数为各个边框图的句柄

BOOL SetBorderBmp(HBITMAP hbmpLeft,HBITMAP hbmpRight,HBITMAP hbmpBottom)

 

//设置标题栏上各个按钮的位图,给出路径

BOOL SetCaptionBtnBmp(CStringArray& strArrBtnClose,CStringArray& strArrBtnMin,CStringArray& strArrBtnMax)

 

//设置标题栏上各个按钮的位图,给出位图句柄指针

BOOL SetCaptionBtnBmp(HBITMAP* hbmpBtnClose,HBITMAP* hbmpBtnMin,HBITMAP* hbmpBtnMax, int nElement)

 

//设置标题栏的位图,给出位图句柄

BOOL SetCaptionBmp(HBITMAP hbmpACaption,HBITMAP hbmpNCaption)

 

//设置标题栏的位图,给出位图路径

BOOL SetCaptionBmp(LPCTSTR lpszACaption,LPCTSTR lpszNCaption)

 

//设置对话框的各边界的颜色

void    SetBorderColor(COLORREF clrLeft,COLORREF clrTop,COLORREF clrRight, COLORREF clrBottom);

 

从上面可以看出,主要包括有:修改对话框的背景颜色,标题栏的颜色,标题栏的位图,标题栏字体的位置和颜色,包括激活和非激活状态,对话框边界的颜色,对话框字体等。

 

SetCaptionBarColor(RGB(255,0,0),RGB(0,255,255));//激活状态下标题栏颜色RGB(255,0,0)

SetCaptionTextColor(RGB(255,255,0),RGB(0,255,255));//激活状态下标题栏文本颜色RGB(255,255,0)

SetCaptinTextPosition(CAPTIONTEXT_CENTER);//标题栏文本的位置

SetDlgBKColor(RGB(255,0,255));//背景颜色RGB(255,0,255)

//边界颜色,左红色,上RGB(0,255,0),右RGB(255,255,0),底RGB(0,255,255)

SetBorderColor(RGB(255,0,0),RGB(0,255,0),RGB(255,255,0),RGB(0,255,255));

 

 扩展对话框样式

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Visual C++窗口标题改变的几种方法 在论坛中,经常有人会问到这个问题,所以今天整理了几种方法用来改变窗口标题,希望对这些朋友有所帮助。    一•单文档接口(SDI)类型窗口标题的改变    首先,我们来看Windows SDI类型窗口标题栏的结构形式。结合具体例子说明:用VC的AppWizard创建一个名为“SDITitle”的单文档类型的工程,创建完工程后,编译运行该工程,程序主窗口标题形式如下:    文档标题 主窗口标题    1•文档标题的改变    文档标题在是由工程中相应的文档类所控制的,因此我们可以利用SetTitle ()函数来改变文档标题。 例:改变CSDITitleDoc::OnNewDocument() 函数为: BOOL CSDITitleDoc::OnNewDocument()    { if (!CDocument::OnNewDocument()) return FALSE; SetTitle (" 文档标题 " );    return TRUE;    }    运行程序,则每次选择选单中的“文件”的“新建”选项时,文档标题就变成 “文档标题- SDITitle”。    2•主窗口标题的改变    主窗口的标题默认是工程的文件名,正如前面AppWazied生成的SDITitle工程执行后,标题栏的形式总为“(文档名)- SDITitle”。    改变主窗口的标题有两种:    第一种方法:利用ResourceView打开工程的资源,修改String Table中的IDR_MAINFRAME的值。将原来的“SDITitle\n\nTitle\n\n\nTitle.Document\nTitle Document”改为“标题改变示例\n\nTitle\n\n \nTitle. Document\nTitle Document”。这样改变后,主窗口标题栏的形式就为“((((-标题改变示例”。    第二种方法:具体改变方法如下:
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值