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

📄 modelessdlg.cpp

📁 根据《VC++6.0 用户界面制作技术与应用实例》写的一些代码
💻 CPP
字号:
// ModelessDlg.cpp : implementation file
//

#include "stdafx.h"
#include "test2.h"
#include "ModelessDlg.h"

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

/////////////////////////////////////////////////////////////////////////////
// CModelessDlg dialog


CModelessDlg::CModelessDlg(CWnd* pParent /*=NULL*/)
//	: CDialog(CModelessDlg::IDD, pParent)
{
	m_pParentWnd = pParent ;
	//{{AFX_DATA_INIT(CModelessDlg)
	m_blue = 0;
	m_green = 0;
	m_red = 0;
	//}}AFX_DATA_INIT
}


void CModelessDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CModelessDlg)
	DDX_Control(pDX, IDC_SCROLLBARRED, m_nScrollRed);
	DDX_Control(pDX, IDC_SCROLLBARGRE, m_nScrollGreen);
	DDX_Control(pDX, IDC_SCROLLBARBLU, m_nScrollBlue);
	DDX_Scroll(pDX, IDC_SCROLLBARBLU, m_blue);
	DDX_Scroll(pDX, IDC_SCROLLBARGRE, m_green);
	DDX_Scroll(pDX, IDC_SCROLLBARRED, m_red);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CModelessDlg, CDialog)
	//{{AFX_MSG_MAP(CModelessDlg)
	ON_WM_HSCROLL()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CModelessDlg message handlers

void CModelessDlg::OnOK() 
{
	// TODO: Add extra validation here
	
	//CDialog::OnOK();
	if(m_pParentWnd != NULL)
	{
		DestroyWindow();
	}
}

void CModelessDlg::OnCancel() 
{
	// TODO: Add extra cleanup here
	if(m_pParentWnd != NULL)
	{
		DestroyWindow();
	}
	//CDialog::OnCancel();
}

BOOL CModelessDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	m_nScrollRed.SetScrollRange(0,255);
	m_nScrollRed.SetScrollPos(m_red);

	m_nScrollGreen.SetScrollRange(0,255);
	m_nScrollGreen.SetScrollPos(m_green);

	m_nScrollBlue.SetScrollRange(0,255);
	m_nScrollBlue.SetScrollPos(m_blue);

	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CModelessDlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) 
{
	// TODO: Add your message handler code here and/or call default
	int nCurPos , nStep = 5  ;

	nCurPos = pScrollBar->GetScrollPos();
	switch(nSBCode)
	{
	case SB_THUMBPOSITION:
		pScrollBar->SetScrollPos(nPos) ;
		break;
	case SB_LINEUP:
		if((nCurPos-nStep)>0)
		{
			nCurPos -= nStep ;
		}
		else
		{
			nCurPos = 0 ;
		}
		pScrollBar->SetScrollPos(nCurPos) ;
		break;
	case SB_LINEDOWN:
		if((nCurPos+nStep)<0)
		{
			nCurPos += nStep ;
		}
		else
		{
			nCurPos = 255 ;
		}
		pScrollBar->SetScrollPos(nCurPos) ;
		break;
	default:
		break;
	}

	if(pScrollBar == &m_nScrollRed)
		m_red = nCurPos;
	else if(pScrollBar == &m_nScrollGreen)
		m_green = nCurPos;
	else if(pScrollBar == &m_nScrollBlue)
		m_blue = nCurPos;

	CWnd* pWnd = GetDlgItem(IDC_PICTURE);
	CRect rect ;
	pWnd->GetClientRect(rect);

	CDC* pDC = pWnd->GetDC();
	CBrush* pBrush = new CBrush ;
	pBrush->CreateSolidBrush(RGB(m_red,m_green,m_blue));

	CBrush*pOldBrush = pDC->SelectObject(pBrush);
	pDC->Rectangle(rect);
	pDC->SelectObject(pOldBrush);
	delete pBrush;

	if(m_pParentWnd!=NULL)
		m_pParentWnd->SendMessage(WM_TESTMES,RGB(m_red,m_green,m_blue));

	//CDialog::OnHScroll(nSBCode, nPos, pScrollBar);
}

/*int CModelessDlg::Create()
{
	return CDialog::Create(CModelessDlg::IDD_DIALOG_MODELESS);
}*/



⌨️ 快捷键说明

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