⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bkcolordlg.cpp

📁 郑阿齐VC教材
💻 CPP
字号:
// BkColorDlg.cpp : implementation file
//

#include "stdafx.h"
#include "Ex_Ctrl5SDI.h"
#include "BkColorDlg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CBkColorDlg dialog


CBkColorDlg::CBkColorDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CBkColorDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CBkColorDlg)
	m_nBlue = 0;
	m_nGreen = 0;
	//}}AFX_DATA_INIT
}


void CBkColorDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CBkColorDlg)
	DDX_Control(pDX, IDC_SCROLLBAR_RED, m_scrollRed);
	DDX_Control(pDX, IDC_SLIDER_GREEN, m_sliderGreen);
	DDX_Control(pDX, IDC_SLIDER_BLUE, m_sliderBlue);
	DDX_Slider(pDX, IDC_SLIDER_BLUE, m_nBlue);
	DDX_Slider(pDX, IDC_SLIDER_GREEN, m_nGreen);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CBkColorDlg, CDialog)
	//{{AFX_MSG_MAP(CBkColorDlg)
	ON_WM_HSCROLL()
	ON_WM_CTLCOLOR()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CBkColorDlg message handlers

void CBkColorDlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) 
{
	// TODO: Add your message handler code here and/or call default

	int nID = pScrollBar->GetDlgCtrlID();
	if (nID == IDC_SCROLLBAR_RED) {// 是滚动条条产生水平滚动消息
		switch(nSBCode){
			case SB_LINELEFT:	m_nRedValue--;		// 单击滚动条左边箭头
								break;
			case SB_LINERIGHT:	m_nRedValue++;		// 单击滚动条右边箭头
								break;
			case SB_PAGELEFT:	m_nRedValue -= 10;	
								break;
			case SB_PAGERIGHT:	m_nRedValue += 10;	
								break;
			case SB_THUMBTRACK:	m_nRedValue = nPos;	
								break;
		}
		if (m_nRedValue<0) m_nRedValue = 0;
		if (m_nRedValue>255) m_nRedValue = 255;
		m_scrollRed.SetScrollPos(m_nRedValue);
	}
	Invalidate();		// 使对话框无效,强迫系统重绘对话框
	CDialog::OnHScroll(nSBCode, nPos, pScrollBar);
}

BOOL CBkColorDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	m_scrollRed.SetScrollRange(0, 255);
	m_sliderBlue.SetRange(0, 255);
	m_sliderGreen.SetRange(0, 255);
	m_nBlue = m_nGreen = m_nRedValue = 192;

	UpdateData( FALSE );
	m_scrollRed.SetScrollPos(m_nRedValue);
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

HBRUSH CBkColorDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
{
	//HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
	// TODO: Change any attributes of the DC here
	UpdateData(TRUE);
	COLORREF color = RGB(m_nRedValue, m_nGreen, m_nBlue);
	m_Brush.Detach();
	m_Brush.CreateSolidBrush(color);
	pDC->SetBkColor( color );
	return (HBRUSH)m_Brush;
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -