1.
颜色对话框
CHOOSECOLOR 结构体来设置获取颜色对话框的相关信息
成员变量m_cc
m_cc.rgbResult 在IDOK之后保存的是选择的颜色RGB值
COLORREF choose_color;
CColorDialog dlg; //创建颜色对话框
dlg.m_cc.Flags|=CC_RGBINIT ;//以用户选择的颜色进行初始化颜色打开对话框
dlg.m_cc.Flags|=CC_FULLOPEN; //全部打开 包括用户自定义
dlg.m_cc.rgbResult=choose_color; //使用我们上次选择的颜色进行初始化
if(IDOK==dlg.DoModal()) //创建模态对话框
{
choose_color=dlg.m_cc.rgbResult; //保存颜色选择 颜色选择会反映到 CHOOSECOLOR结构体中的 regResult变量中
}
2. 字体对话框 CFontDialog
CHOOSEFONT 结构体保存字体设置
LOGFONT 结构体 间接创建字体
DeleteObject 删除与windows GDI 相关的所有存储 这是资源
CGDIObject是GDI类 判断类是否与某种资源相关联我们可以判断句柄
CFont m_font; //定义CFont对象
CString FontName; //字体名字
CFontDialog dlg; //定义 CFontDialog对象
if(IDOK==dlg.DoModal()) //创建模态对话框
{
if(m_font.m_hObject) //判断句柄是否存在
m_font.DeleteObject(); //相关资源
m_font.CreateFontIndirect(dlg.m_cf.lpLogFont); //通过CHOOSEFON结构体的LOGFON 成员创建字体
FontName=dlg.m_cf.lpLogFont->lfFaceName; //字体名字
Invalidate(); //引起窗体无效 重画 进入OnDraw函数
4. GetWindowRect 是获取到屏幕矩形区域的 我们获取控件矩形要用GetClientRect 来获得
SCreenToClient() 屏幕坐标转换到客户坐标
ClientToSCreen() 客户坐标转换成屏幕坐标
5.WM_CTLCOLOR 消息响应 我们可以通过这个消息函数来设置控件的背景颜色 函数必须返回一个画刷 这个函数被调用多次 每次对应一个控件
afx_msg HBRUSH OnCtlColor(
CDC* pDC, //控件设备描述
CWnd* pWnd, //指向控件的指针
UINT nCtlColor ); //控件的类型
CWnd::GetDlgCtrlID() //CWnd类的成员函数 通过对象来获取 一个控件的ID 包括对话框 ID 子窗口 顶层窗口返回值无效
CDC::SetBkMode(TRANSPARENT)设置背景模式
分享到:
相关推荐
WM_CTLCOLOR和WM_CTLCOLOR有什么区别
商业编程-源码-利用WM_CTLCOLOR消息实现编辑控制的文本与背景色的改变.zip
代码示范了如下功能的实现:1、利用WM_CTLCOLOR消息实现编辑控制(Edit Control)的文本与背景色的改变2、加入全局变量的办法 3、GDI中Path使用示例 4、在状态条中显示鼠标的设备坐标与逻辑坐标 关键字:wm_...
改变对话框的颜色,重载OnCtlColor (CDC* pDC, CWnd* pWnd, UINT nCtlColor),即WM_CTLCOLOR消息。
改变MFC对话框背景色、控件内的字体颜色和背景色 设置 Dialog, Group Box, Static Text, Check Box, Edit Ctrl(disabled), Combo Box(disabled), Radio Button等背景色 编写WM_CTLCOLOR消息的映射函数OnCtlColor(CDC...
使用CTLCOLOR消息方法实现对话框背景设置
vs2008用法:重载WM_CTLCOLOR消息,然后调用ResetCtlColor方法。
最近看的一篇文章,感觉对于学习VC界面设计跟美化都很有用,所以稍作整理后分享出来 ... 3.3.3 WM_CTLCOLOR 3.3.4 WM_DRAWITEM 3.3.5 WM_MEASUREITEM 3.3.6 NM_CUSTOMDRAW 3.4 使用MFC类的虚函数机制
对于按压式的Button按钮,WM_CTLCOLOR无法完成按钮控件的背景颜色和字体颜色修改,若想要完成外观定制需要添加WM_DRAWITEM消息或者重写CButton类中的DrawItem函数完成按钮外观修改,下面逐一介绍。 自绘制知识基础 ...
Controls color is Visual Studio
利用WM_CTLCOLOR消息实现编辑控制(Edit Control)的文本与背景色的改变
在控件显示之前,每一个控件都会向父对话框发送一个WM_CTLCOLOR消息要求获取绘制所需要的颜色。WM_CTLCOLOR消息缺省处理函数CWnd::OnCtlColor返回一个HBRUSH类型的句柄,这样,就可以设置前景和背景文本颜色,并为...
MFC 4.2(Visual Studio 6)实现起来很方便,只需要在对话框类下处理WM_CTLCOLOR消息,然后以下代码即可: 代码如下:HBRUSH CAlphaEditboxDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = ...
本文实例为大家分享了MFC实现字幕滚动效果的具体代码...需要添加定时消息,背景颜色消息,添加消息: ON_WM_CTLCOLOR() ON_WM_TIMER() HBRUSH CDemoLEDDlg::OnCtlColor(CDC*pDC, CWnd* pWnd, UINT nCtlColor) { HBRU
1、详细讲解WM_CTLCOLOR的消息映射函数颜色控制的对象。 不但包括父窗口自身的背景和文字颜色,而且还包括静态文本控件、编辑控件以及组合控件等。 2、通过控件自绘技术开发一个包括图标和文字的彩色按钮控件。
一个混合类,通过处理WM_CTLCOLOR *消息并使用五行代码来更改对话框的外观。
一种是处理WM_CTLCOLOR消息,首先创建所选背景颜色的刷子,然后调用SetBkColor()或SetDialogBkColor()以所创建的刷子来绘制窗口或对话框的背景。需要重画窗口或对话(或对话的子控件)时,Windows向对话发送消息WM_...
//用所需的背景色定义画刷 用建立类向导为对话框添加OnCtlColor函数: HBRUSH CListBkChangeDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { if(nCtlColor==CTLCOLOR_LISTBOX) //控件类型 可为CTLCOLOR_...
ON_WM_CTLCOLOR_REFLECT() //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CNewStatic message handlers HBRUSH CNewStatic::CtlColor...
C# windows 常量定义大全1800+个,GENERIC_/OPEN_/FILE_/FO_/FOF_/WS_/WM_ .../MOD_/HS_/FLASHW_/FR_/CC_/CF_/ANSI_/SM_/MIM_/CS_/CTLCOLOR_ /COLOR_/NIF_/NIIF_/NINF_/NIS_/THREAD_/IDI_/MFS_/MB_/SHGFI_等开头的常量