📄 setcoldlg.cpp
字号:
// SetColDlg.cpp : implementation file
//
#include "stdafx.h"
#include "毕业设计.h"
#include "SetColDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CSetColDlg dialog
CSetColDlg::CSetColDlg(BYTE r,BYTE g,BYTE b,CWnd* pParent /*=NULL*/)
: CDialog(CSetColDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CSetColDlg)
//}}AFX_DATA_INIT
pr = r;
pg = g;
pb = b;
or = r;
og = g;
ob = b;
mr = r;
mg = g;
mb = b;
}
void CSetColDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CSetColDlg)
DDX_Text(pDX, IDC_EDIT1, mr);
DDX_Text(pDX, IDC_EDIT2, mg);
DDX_Text(pDX, IDC_EDIT3, mb);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CSetColDlg, CDialog)
//{{AFX_MSG_MAP(CSetColDlg)
ON_WM_PAINT()
ON_WM_LBUTTONDBLCLK()
ON_BN_CLICKED(IDC_BUTTON2, OnButton2)
ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
ON_EN_KILLFOCUS(IDC_EDIT1, OnOK)
ON_EN_KILLFOCUS(IDC_EDIT2, OnOK)
ON_EN_KILLFOCUS(IDC_EDIT3, OnOK)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CSetColDlg message handlers
void CSetColDlg::OnOK(){
GetValue();
}
void CSetColDlg::GetValue(){
UpdateData();
pr = mr>255?255:mr;
pg = mg>255?255:mg;
pb = mb>255?255:mb;
mr = pr,mg = pg,mb = pb;
UpdateData(FALSE);
this->Invalidate();
}
BOOL CSetColDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CSetColDlg::OnPaint()
{
CPaintDC dc(this); // device context for painting
// TODO: Add your message handler code here
int i,j;
// for(int i = 0;i<256;i++){
// for(int j = 0;j<256;j++){
// dc.SetPixel(i+10,j+10,RGB(i,j,0));
// }
// }
CDC dp;
CBitmap cbp;
dp.CreateCompatibleDC(&dc);
cbp.LoadBitmap(IDB_BITMAP1);
dp.SelectObject(&cbp);
dc.BitBlt(10,10,256,256,&dp,0,0,SRCCOPY);
dc.MoveTo(pr,pg+10);
dc.LineTo(pr+20,pg+10);
dc.MoveTo(pr+10,pg);
dc.LineTo(pr+10,pg+20);
for(i = 0;i<256;i++){
for(j = 0;j<30;j++){
dc.SetPixel(j+280,i+10,RGB(pr,pg,i));
}
}
dc.MoveTo(270,pb+10);
dc.LineTo(280,pb+10);
for(i = 0;i<50;i++){
for(j = 0;j<80;j++){
if(i<25){
dc.SetPixel(j+330,i+10,RGB(pr,pg,pb));
}
else{
dc.SetPixel(j+330,i+10,RGB(or,og,ob));
}
}
}
// Do not call CDialog::OnPaint() for painting messages
}
void CSetColDlg::OnLButtonDblClk(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
if(point.x>=10&&point.x<266&&point.y>=10&&point.y<266){
pr = point.x-10;
pg = point.y-10;
mr = pr;
mg = pg;
UpdateData(FALSE);
this->Invalidate();
}
if(point.x>=280&&point.x<310&&point.y>=10&&point.y<266){
pb = point.y-10;
mb = pb;
UpdateData(FALSE);
this->Invalidate();
}
CDialog::OnLButtonDblClk(nFlags, point);
}
void CSetColDlg::OnButton2()
{
// TODO: Add your control notification handler code here
OnCancel();
}
void CSetColDlg::OnButton1()
{
// TODO: Add your control notification handler code here
GetValue();
CDialog::OnOK();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -