📄 modelessdlg.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 + -