about.cpp
来自「在VC编程环境下」· C++ 代码 · 共 156 行
CPP
156 行
/*
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
文件:about.h 类CAboutDlg的执行文件
版权:Firebird Software Workroom 保留
声明:本源程序的版权受《中华人民共和国著作权法》以及其
它相关法律和条约的保护。任何有机会得到本源程序的
个人和机构,未经作者明确授权,不得将本源程序用于
任何商业目的(直接的或间接的)。对于非商业目的的使
用 (包括复制、传播、编译和修改), 原则上没有特别
的限制条款,但请在相关文档中说明其来源,并尊重原
作者的署名权。
编写:秦传安(chings) 2000.6
联络:E_mail:chings@163.net
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
#include "fclstd.h"
#include "resource.h"
#include "about.h"
///////////////////////////////////////////////////////////////////////////////////
CAboutDlg::CAboutDlg()
{
m_hBmp = NULL;
}
CAboutDlg::~CAboutDlg()
{
}
///////////////////////////////////////////////////////////////////////////////////
void CAboutDlg::OnInitDialog()
{
HWND hwnd = GetDlgItem(m_hWnd,IDC_EMAILTO);
m_wndHLink.Attach(hwnd);
hwnd = GetDlgItem(m_hWnd,IDC_BUTTON1);
m_wndFlatBtn.Attach(hwnd);
HICON hIcon = LoadIcon(GetInstance(),MAKEINTRESOURCE(IDI_MAINICON));
if(hIcon)
m_wndFlatBtn.SetImage(IMAGE_ICON,(HANDLE)hIcon);
m_hBmp = (HBITMAP)LoadImage(NULL,"chings.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
if(m_hBmp)
{
BITMAP bmp;
RECT rc;
GetObject(m_hBmp,sizeof(bmp),&bmp);
GetClientRect(m_hWnd,&rc);
m_rcPic.left = (int)(rc.right - rc.left - bmp.bmWidth)/2;
m_rcPic.top = rc.bottom - 24;
m_rcPic.right = m_rcPic.left + bmp.bmWidth;
m_rcPic.bottom = m_rcPic.top + bmp.bmHeight;
}
else
{
SetRectEmpty(&m_rcPic);
}
}
///////////////////////////////////////////////////////////////////////////////////
LRESULT CAboutDlg::WindowProc(UINT msg,WPARAM wParam,LPARAM lParam)
{
if(msg == WM_PAINT)
{
PAINTSTRUCT ps;
BeginPaint(m_hWnd,&ps);
OnPaint(ps.hdc);
EndPaint(m_hWnd,&ps);
return 0;
}
else if(msg == WM_COMMAND && LOWORD(wParam) == IDC_BUTTON1)
{
RECT rc,rcOK;
POINT pt;
GetWindowRect(m_hWnd,&rc);
HWND hwnd = GetDlgItem(m_hWnd,IDOK);
GetWindowRect(hwnd,&rcOK);
pt.x = rcOK.left;
pt.y = rcOK.top;
ScreenToClient(m_hWnd,&pt);
int n;
if(IsRectEmpty(&m_rcPic))
n = 160;
else
n = m_rcPic.bottom - m_rcPic.top + 8;
if(m_wndFlatBtn.IsPushed())
{
rc.bottom -= n;
pt.y -= n;
m_wndFlatBtn.Pushed(FALSE);
}
else
{
rc.bottom += n;
pt.y += n;
m_wndFlatBtn.Pushed(TRUE);
}
MoveWindow(m_hWnd,&rc,TRUE);
SetWindowPos(hwnd,NULL,pt.x,pt.y,0,0,SWP_NOACTIVATE |
SWP_NOSIZE | SWP_NOZORDER | SWP_NOCOPYBITS);
Invalidate();
return 0;
}
else
return CModalDlg::WindowProc(msg,wParam,lParam);
}
///////////////////////////////////////////////////////////////////////////////////
void CAboutDlg::OnPaint(HDC hDC)
{
RECT rc;
GetClientRect(m_hWnd,&rc);
rc.top += 4;
rc.left += 2;
rc.right -= 2;
rc.bottom -= 28;
DrawEdge(hDC,&rc,EDGE_ETCHED,BF_RECT);
if(m_wndFlatBtn.IsPushed())
{
int n;
if(m_hBmp)
{
n = m_rcPic.bottom - m_rcPic.top + 8;
HDC hBmpDC = CreateCompatibleDC(hDC);
SelectObject(hBmpDC,m_hBmp);
BitBlt(hDC,m_rcPic.left,m_rcPic.top,m_rcPic.right - m_rcPic.left,
m_rcPic.bottom - m_rcPic.top,hBmpDC,0,0,SRCCOPY);
DeleteDC(hBmpDC);
DrawEdge(hDC,&m_rcPic,EDGE_SUNKEN,BF_RECT);
}
else
n = 160;
rc.top = rc.bottom - n -1;
rc.left += 1;
rc.right -= 1;
DrawEdge(hDC,&rc,EDGE_ETCHED,BF_TOP);
if(!m_hBmp)
{
LPTSTR pText = "没有找到图片文件";
SIZE sz;
GetTextExtentPoint32(hDC,pText,lstrlen(pText),&sz);
rc.top += (int)((rc.bottom - rc.top) - sz.cy)/2;
DrawText(hDC,pText,lstrlen(pText),&rc,DT_CENTER);
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?