📄 titledlg.cpp
字号:
// TitleDlg.cpp : implementation file
//
#include "stdafx.h"
#include "source10.h"
#include "TitleDlg.h"
#include "dibapi.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CTitleDlg dialog
CTitleDlg::CTitleDlg(CWnd* pParent /*=NULL*/)
: CDialog(CTitleDlg::IDD, pParent)
{
m_hDIB = NULL;
//{{AFX_DATA_INIT(CTitleDlg)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}
void CTitleDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CTitleDlg)
// NOTE: the ClassWizard will add DDX and DDV calls here
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CTitleDlg, CDialog)
//{{AFX_MSG_MAP(CTitleDlg)
ON_WM_PAINT()
ON_WM_DESTROY()
ON_WM_LBUTTONDBLCLK()
ON_WM_LBUTTONDOWN()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CTitleDlg message handlers
BOOL CTitleDlg::OnInitDialog()
{
char lpNameandPath[50];
CDialog::OnInitDialog();
GetWindowsDirectory(lpNameandPath,sizeof(lpNameandPath));
lstrcat(lpNameandPath,"\\twain_32\\MTIScanner\\mtisource\\title.bmp");
m_hDIB=::ReadDIBFile( lpNameandPath );
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CTitleDlg::OnPaint()
{
CPalette* palDIB;
CPaintDC dc(this); // device context for painting
if (m_hDIB != NULL)
{
// Create copy of palette
palDIB = new CPalette;
if (palDIB == NULL)
{
// we must be really low on memory
::GlobalFree((HGLOBAL) m_hDIB);
m_hDIB = NULL;
return;
}
if (::CreateDIBPalette((struct HDIB__ *)m_hDIB, palDIB) == NULL)
{
// DIB may not have a palette
delete palDIB;
palDIB = NULL;
//Even there is no palette,the dib may be 24 bit truecolor.
//So the return is commented.
//return;
}
CPalette* oldPalette=dc.SelectPalette( palDIB, TRUE);
UINT nColorsChanged=dc.RealizePalette();
/////////////////////////////////////////////////////////////////////
//
LPSTR lpDIB = (LPSTR) ::GlobalLock((HGLOBAL) m_hDIB);
int cxDIB = (int) ::DIBWidth(lpDIB); // Size of DIB - x
int cyDIB = (int) ::DIBHeight(lpDIB); // Size of DIB - y
::GlobalUnlock((HGLOBAL) m_hDIB);
CRect rcDIB;
rcDIB.top = rcDIB.left = 0;
rcDIB.right = cxDIB;
rcDIB.bottom = cyDIB;
//Define the rect of dest DC.
CRect rcDest;
rcDest = rcDIB;
::PaintDIB(dc.m_hDC, &rcDest,(struct HDIB__ *)m_hDIB,
&rcDIB, palDIB);
dc.SelectPalette(oldPalette,TRUE);
}//End of if(m_hDIB!=NULL)
// Do not call CDialog::OnPaint() for painting messages
}
void CTitleDlg::OnDestroy()
{
CDialog::OnDestroy();
if(m_hDIB!=NULL)
GlobalFree(m_hDIB);
}
void CTitleDlg::OnLButtonDblClk(UINT nFlags, CPoint point)
{
MessageBox("hi");
CDialog::OnLButtonDblClk(nFlags, point);
CDialog::OnDestroy();
}
void CTitleDlg::OnLButtonDown(UINT nFlags, CPoint point)
{
MessageBox("hi");
CDialog::OnLButtonDown(nFlags, point);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -