📄 about.cpp
字号:
// About.cpp : implementation file
//
#include "stdafx.h"
#include "ms5.h"
#include "About.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CAbout dialog
CAbout::CAbout(CWnd* pParent /*=NULL*/)
: CDialog(CAbout::IDD, pParent)
{
//{{AFX_DATA_INIT(CAbout)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
isIn = false;
}
void CAbout::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CAbout)
// NOTE: the ClassWizard will add DDX and DDV calls here
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CAbout, CDialog)
//{{AFX_MSG_MAP(CAbout)
ON_WM_LBUTTONDOWN()
ON_WM_CTLCOLOR()
ON_WM_SETCURSOR()
ON_WM_MOUSEMOVE()
ON_WM_PAINT()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CAbout message handlers
BOOL CAbout::OnInitDialog()
{
CDialog::OnInitDialog();
int i,j;
CClientDC dc(this);
CBitmap bmp;CDC dcmem;BITMAP bm;
bmp.LoadBitmap("bk");
m_brush = CreatePatternBrush((HBITMAP)bmp);
GetObject(bmp,sizeof(BITMAP),(LPVOID)&bm);
dcmem.CreateCompatibleDC(&dc);
dcmem.SelectObject(&bmp);
dc.BitBlt(0,0,bm.bmWidth,bm.bmHeight,&dcmem,0,0,SRCCOPY);
CRgn myrgn,temprgn;
myrgn.CreateRectRgn(0,0,bm.bmWidth,bm.bmHeight);
COLORREF color=dcmem.GetPixel(0,0);
for(i=0;i<bm.bmWidth;i++)
for(j=0;j<bm.bmHeight;j++)
{
if (dcmem.GetPixel(i,j)==color)
{
temprgn.CreateRectRgn(i,j,i+1,j+1);
myrgn.CombineRgn(&myrgn,&temprgn,RGN_XOR);
temprgn.DeleteObject();
}
}
SetWindowRgn(myrgn,TRUE);
bmp.DeleteObject();
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CAbout::OnLButtonDown(UINT nFlags, CPoint point)
{
SendMessage(WM_SYSCOMMAND,0xf012,0);
CRect mailrect;
CWnd *pStatic=GetDlgItem(IDC_MAILSTATIC);
pStatic->GetWindowRect (mailrect);
ScreenToClient(mailrect);
if (mailrect.PtInRect(point))
{
ShellExecute(m_hWnd,NULL,"mailto:zhangpo03@mails.tsinghua.edu.cn",NULL,NULL,SW_SHOWMAXIMIZED);
}
CDialog::OnLButtonDown(nFlags, point);
}
HBRUSH CAbout::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
if (nCtlColor==CTLCOLOR_DLG)
return m_brush;
if (nCtlColor==CTLCOLOR_STATIC)
{
if (!pWnd->IsKindOf( RUNTIME_CLASS( CEdit )))
{
pDC->SetBkMode(TRANSPARENT);
return m_brush;
}
}
return hbr;
}
BOOL CAbout::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)
{
CRect rcButton;
CPoint ptCursor;
CWnd *pStatic=GetDlgItem(IDC_MAILSTATIC);
pStatic->GetWindowRect (rcButton);
GetCursorPos(&ptCursor);
if (rcButton.PtInRect (ptCursor))
{
CWinApp *pApp=AfxGetApp();
HICON hIconBang=pApp->LoadCursor (IDC_CURSOR1);
SetCursor(hIconBang);
return TRUE;
}
return CDialog::OnSetCursor(pWnd, nHitTest, message);
}
void CAbout::OnMouseMove(UINT nFlags, CPoint point)
{
CWnd *pStatic=GetDlgItem(IDC_MAILSTATIC);
CRect mailrect;
pStatic->GetWindowRect (mailrect);
ScreenToClient(mailrect);
if (mailrect.PtInRect(point))
{
if (!isIn)
{
LOGFONT lf;
this->GetFont()->GetLogFont(&lf);
lf.lfItalic = true;
lf.lfUnderline = true;
CFont cf;
cf.CreateFontIndirect(&lf);
pStatic->SetFont(&cf);
isIn = true;
}
}
else
{
if (isIn)
{
LOGFONT lf;
this->GetFont()->GetLogFont(&lf);
lf.lfItalic = false;
lf.lfUnderline = false;
CFont cf;
cf.CreateFontIndirect(&lf);
pStatic->SetFont(&cf);
isIn = false;
}
}
CDialog::OnMouseMove(nFlags, point);
}
void CAbout::OnPaint()
{
CPaintDC dc(this); // device context for painting
CWnd *pStatic=GetDlgItem(IDC_MAILSTATIC);
CRect mailrect;
pStatic->GetWindowRect (mailrect);
CPoint point;
GetCursorPos(&point);
if (mailrect.PtInRect(point))
{
LOGFONT lf;
this->GetFont()->GetLogFont(&lf);
lf.lfItalic = true;
lf.lfUnderline = true;
CFont cf;
cf.CreateFontIndirect(&lf);
pStatic->SetFont(&cf);
}
else
{
LOGFONT lf;
this->GetFont()->GetLogFont(&lf);
lf.lfItalic = false;
lf.lfUnderline = false;
CFont cf;
cf.CreateFontIndirect(&lf);
pStatic->SetFont(&cf);
}
// Do not call CDialog::OnPaint() for painting messages
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -