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

📄 titledlg.cpp

📁 又VC++实现的基于TWAIN的扫描仪图像输入处理软件
💻 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 + -