зеркало из https://github.com/mozilla/pjs.git
130 строки
3.7 KiB
C++
130 строки
3.7 KiB
C++
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
|
*
|
|
* The contents of this file are subject to the Netscape Public License
|
|
* Version 1.0 (the "NPL"); you may not use this file except in
|
|
* compliance with the NPL. You may obtain a copy of the NPL at
|
|
* http://www.mozilla.org/NPL/
|
|
*
|
|
* Software distributed under the NPL is distributed on an "AS IS" basis,
|
|
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
|
|
* for the specific language governing rights and limitations under the
|
|
* NPL.
|
|
*
|
|
* The Initial Developer of this code under the NPL is Netscape
|
|
* Communications Corporation. Portions created by Netscape are
|
|
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
|
|
* Reserved.
|
|
*/
|
|
|
|
// ImageDialog.cpp : implementation file
|
|
//
|
|
|
|
#include "stdafx.h"
|
|
#include "WizardMachine.h"
|
|
#include "ImageDialog.h"
|
|
|
|
#ifdef _DEBUG
|
|
#define new DEBUG_NEW
|
|
#undef THIS_FILE
|
|
static char THIS_FILE[] = __FILE__;
|
|
#endif
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CImageDialog dialog
|
|
|
|
extern char iniFilePath[MAX_SIZE];
|
|
extern char imagesPath[MAX_SIZE];
|
|
|
|
CImageDialog::CImageDialog(CWnd* pParent /*=NULL*/)
|
|
: CDialog(CImageDialog::IDD, pParent)
|
|
{
|
|
//{{AFX_DATA_INIT(CImageDialog)
|
|
// NOTE: the ClassWizard will add member initialization here
|
|
//}}AFX_DATA_INIT
|
|
}
|
|
|
|
CImageDialog::CImageDialog(CString theIniFileName, CWnd* pParent /*=NULL*/)
|
|
: CDialog(CImageDialog::IDD, pParent)
|
|
{
|
|
//{{AFX_DATA_INIT(CImageDialog)
|
|
// NOTE: the ClassWizard will add member initialization here
|
|
//}}AFX_DATA_INIT
|
|
imageSectionName = "IMAGE";
|
|
|
|
// All the images to be displayed on button clicks are
|
|
// in this iniFile. So iniFileName is initialized thus.
|
|
iniFileName = CString(iniFilePath) + theIniFileName;
|
|
ReadImageFromIniFile();
|
|
}
|
|
|
|
void CImageDialog::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
CDialog::DoDataExchange(pDX);
|
|
//{{AFX_DATA_MAP(CImageDialog)
|
|
// NOTE: the ClassWizard will add DDX and DDV calls here
|
|
//}}AFX_DATA_MAP
|
|
}
|
|
|
|
|
|
BEGIN_MESSAGE_MAP(CImageDialog, CDialog)
|
|
//{{AFX_MSG_MAP(CImageDialog)
|
|
ON_WM_PAINT()
|
|
//}}AFX_MSG_MAP
|
|
END_MESSAGE_MAP()
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CImageDialog message handlers
|
|
|
|
void CImageDialog::OnPaint()
|
|
{
|
|
CPaintDC dc(this); // device context for painting
|
|
|
|
// TODO: Add your message handler code here
|
|
|
|
CRect rect(0, 0, 4, 8);
|
|
MapDialogRect(&rect);
|
|
|
|
int baseWidth = rect.Width();
|
|
int baseHeight = rect.Height();
|
|
|
|
CClientDC cdc(this);
|
|
HBITMAP hbmpOld;
|
|
CDC dcMem;
|
|
|
|
dcMem.CreateCompatibleDC(&cdc);
|
|
|
|
hbmpOld = (HBITMAP)::SelectObject(dcMem, image.hBitmap);
|
|
|
|
dc.BitBlt((int)((float)(image.location.x) * (float)baseWidth / 4.0),
|
|
(int)((float)(image.location.y) * (float)baseHeight / 8.0),
|
|
(int)((float)(image.size.width) * (float)baseWidth / 4.0),
|
|
(int)((float)(image.size.height) * (float)baseHeight / 8.0),
|
|
&dcMem,
|
|
0,
|
|
0,
|
|
SRCCOPY);
|
|
|
|
// Do not call CDialog::OnPaint() for painting messages
|
|
}
|
|
|
|
void CImageDialog::ReadImageFromIniFile()
|
|
{
|
|
char buffer[500];
|
|
GetPrivateProfileString(imageSectionName, "Name", "", buffer, 250, iniFileName);
|
|
image.name = CString(imagesPath) + CString(buffer);
|
|
|
|
GetPrivateProfileString(imageSectionName, "start_X", "", buffer, 250, iniFileName);
|
|
image.location.x = atoi(buffer);
|
|
|
|
GetPrivateProfileString(imageSectionName, "start_Y", "", buffer, 250, iniFileName);
|
|
image.location.y = atoi(buffer);
|
|
|
|
GetPrivateProfileString(imageSectionName, "width", "", buffer, 250, iniFileName);
|
|
image.size.width = atoi(buffer);
|
|
|
|
GetPrivateProfileString(imageSectionName, "height", "", buffer, 250, iniFileName);
|
|
image.size.height = atoi(buffer);
|
|
|
|
image.hBitmap = (HBITMAP)LoadImage(NULL, image.name, IMAGE_BITMAP, 0, 0,
|
|
LR_LOADFROMFILE|LR_CREATEDIBSECTION);
|
|
} |