// ColorDlg.cpp : implementation file
//
#include "stdafx.h"
#include "Color.h"
#include "ColorDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CAboutDlg dialog used for App About
class CAboutDlg : public CDialog
{
public:
CAboutDlg();
// Dialog Data
//{{AFX_DATA(CAboutDlg)
enum { IDD = IDD_ABOUTBOX };
//}}AFX_DATA
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CAboutDlg)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
//{{AFX_MSG(CAboutDlg)
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
//{{AFX_DATA_INIT(CAboutDlg)
//}}AFX_DATA_INIT
}
void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CAboutDlg)
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
//{{AFX_MSG_MAP(CAboutDlg)
// No message handlers
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CColorDlg dialog
CColorDlg::CColorDlg(CWnd* pParent /*=NULL*/)
: CDialog(CColorDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CColorDlg)
m_strMessage = _T("");
//}}AFX_DATA_INIT
// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
void CColorDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CColorDlg)
DDX_Control(pDX, IDC_ALLMSG, m_ctlAllMsg);
DDX_Text(pDX, IDC_MESSAGE, m_strMessage);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CColorDlg, CDialog)
//{{AFX_MSG_MAP(CColorDlg)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_BN_CLICKED(IDC_ENTER, OnEnter)
ON_WM_CTLCOLOR()
ON_BN_CLICKED(IDC_CHANGEFONT, OnChangeFont)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CColorDlg message handlers
BOOL CColorDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// Add "About..." menu item to system menu.
// IDM_ABOUTBOX must be in the system command range.
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);
CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
CString strAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}
// 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
// TODO: Add extra initialization here
m_brush.CreateSolidBrush(RGB(192,192,192));
return TRUE; // return TRUE unless you set the focus to a control
}
void CColorDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
if ((nID & 0xFFF0) == IDM_ABOUTBOX)
{
CAboutDlg dlgAbout;
dlgAbout.DoModal();
}
else
{
CDialog::OnSysCommand(nID, lParam);
}
}
// If you add a minimize button to your dialog, you will need the code below
// to draw the icon. For MFC applications using the document/view model,
// this is automatically done for you by the framework.
void CColorDlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // device context for painting
SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
// Center icon in client rectangle
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;
// Draw the icon
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CDialog::OnPaint();
}
}
// The system calls this to obtain the cursor to display while the user drags
// the minimized window.
HCURSOR CColorDlg::OnQueryDragIcon()
{
return (HCURSOR) m_hIcon;
}
void CColorDlg::OnEnter()
{
UpdateData(TRUE);
m_ctlAllMsg.AddString(m_strMessage); // Add a string to our listbox
m_strMessage = "";
UpdateData(FALSE);
}
HBRUSH CColorDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
// TODO: Change any attributes of the DC here
UpdateData(TRUE);
if (pWnd->GetDlgCtrlID() == IDC_ALLMSG || pWnd->GetDlgCtrlID() == IDC_MESSAGE)
{
// either the listbox or edit box has input focus
if (m_bFirstTime == TRUE) // First time through function... set up default color
pDC->SetTextColor(RGB(0,0,0));
else
{
pDC->SetTextColor(RGB(GetRValue(m_crColor),GetGValue(m_crColor),
GetBValue(m_crColor)));
pDC->SetBkColor(RGB(255 - GetRValue(m_crColor),
255 - GetGValue(m_crColor), 255 - GetBValue(m_crColor)));
}
}
return m_brush; // Paint the dialog yellow!!
// TODO: Return a different brush if the default is not desired
return hbr;
}
void CColorDlg::OnChangeFont()
{
CColorDialog colorDlg;
if (colorDlg.DoModal() == IDOK) // The user selected the "OK" button
{
m_crColor = colorDlg.GetColor();
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
MFC Windows 程序设计之彩色字体对话框,适合初学MFC的小伙伴学习研究,博客中有对应的讲解和演示,避免走弯路,费时费力。也真心希望能够帮助正在苦学MFC Windows 程序设计的小伙伴们,你们的成长是我最大的幸福。
资源推荐
资源详情
资源评论
收起资源包目录
AColorFont_src.zip (41个子文件)
ColorFont_src
.vs
Color
v15
Browse.VC.db 65.69MB
.suo 33KB
ipch
2c5f9ae772a1d052.ipch 91.94MB
Color.vcxproj 8KB
res
Color.rc2 397B
Color.ico 1KB
ColorDlg.h 1KB
Color.dsw 535B
ColorDlg.cpp 5KB
Color.vcxproj.filters 2KB
Color.dsp 4KB
Color.rc 5KB
Color.h 1KB
StdAfx.cpp 207B
resource.h 867B
Color.vcxproj.user 165B
StdAfx.h 1KB
Backup
UpgradeLog.htm 33KB
Debug
StdAfx.obj 820KB
Color.pch 34.63MB
Color.obj 24KB
Color.log 797B
Color.exe 134KB
Color.pdb 5.45MB
Color.tlog
CL.write.1.tlog 2KB
CL.read.1.tlog 51KB
rc.write.1.tlog 254B
rc.read.1.tlog 3KB
CL.command.1.tlog 3KB
link.write.1.tlog 930B
link.command.1.tlog 1KB
Color.lastbuildstate 223B
rc.command.1.tlog 418B
link.read.1.tlog 6KB
vc141.idb 1.43MB
ColorDlg.obj 53KB
vc141.pdb 3.93MB
Color.ilk 1.4MB
Color.res 3KB
Color.cpp 2KB
Color.sln 1KB
共 41 条
- 1
资源评论
五一编程
- 粉丝: 1w+
- 资源: 882
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于matlab开发的根据rvm回归模型自己编的matlab程序.rar
- 高效C++学生成绩管理系统:教育技术+C++17编程+数据管理+教务自动化
- 基于matlab开发的Tipping的相关向量机RVM的回归MATLAB程序,有英文注释,可以运行.rar
- 一个点击正反转程序实例,可实现案件电机正反转
- 搜索链接淘特搜索引擎共享版-tot-search-engine.rar
- 第十八届全国大学生智能汽车竞赛 摄像头组/镜头组
- 基于matlab开发的AUV惯性导航系统matlab仿真程序,包括轨迹生成、gps和sins组合、gps和dvl组合.rar
- 基于SSM的“个性化电子相册”的设计与实现.zip
- 如何在撰写科研文献时,使用ai工具辅助去完成科研工作
- 吉林大学计组笔记 自用 基于b站翼云图灵的课.pdf
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功