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

📄 keydlg.cpp

📁 用VC编的电子日记软件
💻 CPP
字号:
// KeyDlg.cpp : implementation file
//

#include "stdafx.h"
#include "testd.h"
#include "KeyDlg.h"

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

/////////////////////////////////////////////////////////////////////////////
// CKeyDlg dialog


CKeyDlg::CKeyDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CKeyDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CKeyDlg)
	m_key = _T("");
	//}}AFX_DATA_INIT
	rect1=CRect(230,25,355,155);
	point=CPoint(rect1.left,rect1.top);
}


void CKeyDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CKeyDlg)
	DDX_Control(pDX, IDC_STATICKEY, m_skey);
	DDX_Text(pDX, IDC_KEY, m_key);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CKeyDlg, CDialog)
	//{{AFX_MSG_MAP(CKeyDlg)
	ON_WM_DESTROY()	
	ON_WM_CTLCOLOR()
	ON_WM_PAINT()
	ON_WM_TIMER()
	ON_WM_ERASEBKGND()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CKeyDlg message handlers

void CKeyDlg::OnOK() 
{
	// TODO: Add extra validation here
	UpdateData();
	key=m_key;
	CDialog::OnOK();
}

BOOL CKeyDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	btnok.Create("确定",WS_CHILD|WS_VISIBLE|BS_OWNERDRAW,CRect(95,120,165,145),this,IDOK);

	rgna.CreateRoundRectRgn(5,5,370,180,30,30);
	rgnb.CreateRoundRectRgn(15,15,377,185,30,30);
	rgnc.CreateRoundRectRgn(5,5,500,265,30,30);
	rgnc.CombineRgn(&rgnb,&rgna,RGN_OR);

	SetWindowRgn(rgnc,TRUE);

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


void CKeyDlg::OnDestroy() 
{
	CDialog::OnDestroy();
	
	// TODO: Add your message handler code here
	rgna.DeleteObject();
	rgnb.DeleteObject();
	rgnc.DeleteObject();
	KillTimer(1);
}

HBRUSH CKeyDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
{
	HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
	
	// TODO: Change any attributes of the DC here
	if(pWnd->GetDlgCtrlID()==IDC_KEY)
	{
		CBrush br(RGB(0,255,255));
		pDC->SetBkColor(RGB(0,255,255));
		hbr=br;
	}	
	// TODO: Return a different brush if the default is not desired

	return hbr;
}

void CKeyDlg::OnPaint() 
{
	CPaintDC dc(this); // device context for painting
		CDC memdc;
	CBitmap bitmap;
	bitmap.LoadBitmap(IDB_BACKGROUND);
	memdc.CreateCompatibleDC(&dc);
	CBitmap *def=memdc.SelectObject(&bitmap);
	CBrush br(RGB(50,50,50));
	CRect rect;
	GetClientRect(&rect);
	CRgn rgna,rgnb,rgnc;
	rgna.CreateRoundRectRgn(8,8,379,185,30,40);
	rgnb.CreateRoundRectRgn(0,0,367,174,30,40);
	rgnc.CreateRoundRectRgn(0,0,510,260,40,40);
	rgnc.CombineRgn(&rgna,&rgnb,RGN_DIFF);
	memdc.FillRgn(&rgnc,&br);
		CFont font;
	font.CreateFont(MulDiv(9, -dc.GetDeviceCaps(LOGPIXELSY), 72), 
		0, 0, 0, FW_THIN, FALSE, FALSE, 0,
		DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS,
		DEFAULT_QUALITY, DEFAULT_PITCH|FF_SWISS, _T("宋体"));
	CPen pen(PS_SOLID, 2, RGB(72, 72, 72));
	CPen pen1(PS_SOLID,2, RGB(192, 192, 192));
	CPen *oldpen;
				memdc.FillRect(rect1,&br);
				oldpen=memdc.SelectObject(&pen);
				memdc.MoveTo(rect1.left,rect1.bottom);
				memdc.LineTo(rect1.left,rect1.top);
				memdc.LineTo(rect1.right,rect1.top);
				memdc.SelectObject(&pen1);
				memdc.MoveTo(rect1.right,rect1.top);
				memdc.LineTo(rect1.right,rect1.bottom);
				memdc.LineTo(rect1.left,rect1.bottom);
				memdc.SelectObject(oldpen);
				memdc.SelectObject(&font);
				DrawRect(&memdc);
	dc.BitBlt(0,0,rect.Width(),rect.Height(),&memdc,0,0,SRCCOPY);
	memdc.SelectObject(def);
	pen.DeleteObject();
	pen1.DeleteObject();
	font.DeleteObject();
	SetTimer(1,100,NULL);

}


void CKeyDlg::DrawRect(CDC *pDC)
{
	CRgn rgn;
	rgn.CreateRectRgnIndirect(&rect1);
	pDC->SelectClipRgn(&rgn,RGN_COPY);
	COLORREF oldColor = pDC->SetTextColor(RGB(255,255,255));
	int nOldMode = pDC->SetBkMode(TRANSPARENT);
	pDC->TextOut(point.x+5,point.y+6,"欢迎进入!");
	pDC->TextOut(point.x+5,point.y+26,"这是一个电子日记本!");
	pDC->TextOut(point.x+5,point.y+46,"有什么问题请联系我");
	pDC->TextOut(point.x+5,point.y+66,"作者:郭井胜");
	pDC->SetTextColor(oldColor);
	pDC->SetBkMode(nOldMode);
	pDC->SelectClipRgn(NULL, RGN_COPY);
}

void CKeyDlg::OnTimer(UINT nIDEvent) 
{
	// TODO: Add your message handler code here and/or call default
	    point.y-=2;
	if(point.y<rect1.top-80)
	{
		KillTimer(1);
		InvalidateRect(rect1,false);
		point.y=rect1.bottom;
		CDialog::OnTimer(nIDEvent);
	}
	InvalidateRect(rect1,false);
	CDialog::OnTimer(nIDEvent);
	CDialog::OnTimer(nIDEvent);
}
BOOL CKeyDlg::OnEraseBkgnd(CDC *dc)
{




	return true;
}

⌨️ 快捷键说明

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