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

📄 fixedregion.cpp

📁 AVI这个软件是用VC编写的
💻 CPP
字号:
// RenderSoft CamStudio
//
// Copyright 2001 RenderSoft Software & Web Publishing
// 
//
// FixedRegion.cpp : implementation file
//

#include "stdafx.h"
#include "vscap.h"
#include "FixedRegion.h"

#include <stdio.h>

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif


extern int captureleft;
extern int capturetop;
extern int fixedcapture;


extern int maxxScreen;
extern int maxyScreen;
extern int capturewidth;
extern int captureheight;

extern HWND hMouseCaptureWnd;
extern int DefineMode;
extern int MouseCaptureMode;
extern HWND hWnd_FixedRegion;

extern RECT   rcUse; 


/////////////////////////////////////////////////////////////////////////////
// CFixedRegion dialog


CFixedRegion::CFixedRegion(CWnd* pParent /*=NULL*/)
	: CDialog(CFixedRegion::IDD, pParent)
{
	//{{AFX_DATA_INIT(CFixedRegion)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
}


void CFixedRegion::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CFixedRegion)
		// NOTE: the ClassWizard will add DDX and DDV calls here
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CFixedRegion, CDialog)
	//{{AFX_MSG_MAP(CFixedRegion)
	ON_BN_CLICKED(IDSELECT, OnSelect)
	ON_BN_CLICKED(IDC_FIXEDTOPLEFT, OnFixedtopleft)
	//}}AFX_MSG_MAP
	ON_MESSAGE(WM_USER_REGIONUPDATE, OnRegionUpdate)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CFixedRegion message handlers

void CFixedRegion::OnOK() 
{
	// TODO: Add extra validation here
	CString widthstr;
	CString heightstr;

	int width;
	int height;
	
	((CEdit *) GetDlgItem(IDC_WIDTH))->GetWindowText(widthstr);
	((CEdit *) GetDlgItem(IDC_HEIGHT))->GetWindowText(heightstr);

	sscanf(LPCTSTR(widthstr),"%d",&width);
	sscanf(LPCTSTR(heightstr),"%d",&height);


	if (width<=0) {

		CString msgstr;
		msgstr.Format("The width must be greater than 0");
		MessageBox(msgstr,"Note",MB_OK | MB_ICONEXCLAMATION);
		return;


	}

	if (width>maxxScreen) {

		CString msgstr;
		msgstr.Format("The width must be smaller than the screen width (%d)",maxxScreen);
		MessageBox(msgstr,"Note",MB_OK | MB_ICONEXCLAMATION);
		return;


	}

	if (height<=0) {

		CString msgstr;
		msgstr.Format("The height must be greater than 0");
		MessageBox(msgstr,"Note",MB_OK | MB_ICONEXCLAMATION);
		return;

	}

	if (height>maxyScreen) {

		CString msgstr;
		msgstr.Format("The height must be smaller than the screen height (%d)",maxyScreen);
		MessageBox(msgstr,"Note",MB_OK | MB_ICONEXCLAMATION);
		return;


	}



	//version 1.5
	int fval = ((CButton *) GetDlgItem(IDC_FIXEDTOPLEFT))->GetCheck();

	if (fval) { //Bypass all the following checks if the Fixed Top-Left setting is not turned on

		CString xstr;
		CString ystr;

		int xval;
		int yval;
		
		((CEdit *) GetDlgItem(IDC_X))->GetWindowText(xstr);
		((CEdit *) GetDlgItem(IDC_Y))->GetWindowText(ystr);

		sscanf(LPCTSTR(xstr),"%d",&xval);
		sscanf(LPCTSTR(ystr),"%d",&yval);
		

		if (xval<=0) {

			CString msgstr;
			msgstr.Format("The left value must be greater than 0");
			MessageBox(msgstr,"Note",MB_OK | MB_ICONEXCLAMATION);
			return;


		}

		if (xval>maxxScreen) {

			CString msgstr;
			msgstr.Format("The left value must be smaller than the screen width (%d)",maxxScreen);
			MessageBox(msgstr,"Note",MB_OK | MB_ICONEXCLAMATION);
			return;


		}

		if (yval<=0) {

			CString msgstr;
			msgstr.Format("The top value must be greater than 0");
			MessageBox(msgstr,"Note",MB_OK | MB_ICONEXCLAMATION);
			return;

		}

		if (yval>maxyScreen) {

			CString msgstr;
			msgstr.Format("The top value must be smaller than the screen height (%d)",maxyScreen);
			MessageBox(msgstr,"Note",MB_OK | MB_ICONEXCLAMATION);
			return;


		}


		
		if (xval+width>maxxScreen) {

			
			width=maxxScreen-xval;
			
			if (width<=0) {
				xval=100;
				width=320;
				
			}		

			CString msgstr;
			msgstr.Format("Value exceed screen width. The width is adjusted to %d",width);
			MessageBox(msgstr,"Note",MB_OK | MB_ICONEXCLAMATION);
		
		}
		

		if (yval+height>maxyScreen) {
			
			height=maxyScreen-yval;
			
			if (height<=0) {
			
				yval=100;
				height=240;
				
			}		

			CString msgstr;
			msgstr.Format("Value exceed screen height. The height is adjusted to %d",height);
			MessageBox(msgstr,"Note",MB_OK | MB_ICONEXCLAMATION);		

		}


		captureleft= xval;
		capturetop= yval;

	}

	fixedcapture = fval;	

	///////// 



	capturewidth= width;
	captureheight= height;

		
	CDialog::OnOK();
}

BOOL CFixedRegion::OnInitDialog() 
{
	CDialog::OnInitDialog();


	// TODO: Add extra initialization here


	//version 1.5
	CString xstr;
	CString ystr;
		
	xstr.Format("%d",captureleft);
	ystr.Format("%d",capturetop);	

	((CEdit *) GetDlgItem(IDC_X))->EnableWindow(TRUE);
	((CEdit *) GetDlgItem(IDC_Y))->EnableWindow(TRUE);
	((CEdit *) GetDlgItem(IDC_X))->SetWindowText(xstr);
	((CEdit *) GetDlgItem(IDC_Y))->SetWindowText(ystr);

	
	if (fixedcapture) {

		((CButton *) GetDlgItem(IDC_FIXEDTOPLEFT))->SetCheck(TRUE);
		

	}
	else {

		((CButton *) GetDlgItem(IDC_FIXEDTOPLEFT))->SetCheck(FALSE);
		((CEdit *) GetDlgItem(IDC_X))->EnableWindow(FALSE);
		((CEdit *) GetDlgItem(IDC_Y))->EnableWindow(FALSE);

	}
	///////////////////////////////


	CString widthstr;
	CString heightstr;
	
	widthstr.Format("%d",capturewidth);
	heightstr.Format("%d",captureheight);
	
	((CEdit *) GetDlgItem(IDC_WIDTH))->SetWindowText(widthstr);
	((CEdit *) GetDlgItem(IDC_HEIGHT))->SetWindowText(heightstr);

	((CStatic *) GetDlgItem(IDC_MSG))->SetWindowText("");

	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CFixedRegion::OnSelect() 
{
	// TODO: Add your control notification handler code here
	CString csDefineRegion;
	csDefineRegion.LoadString(ID_DEFINE_REGION);
	((CStatic *) GetDlgItem(IDC_MSG))->SetWindowText(csDefineRegion);
	
	MouseCaptureMode = 1; //set temporarily to 1
	DefineMode = 1;
	hWnd_FixedRegion = m_hWnd;
	::ShowWindow(hMouseCaptureWnd,SW_MAXIMIZE);
	::UpdateWindow(hMouseCaptureWnd);	

	((CStatic *) GetDlgItem(IDC_MSG))->SetWindowText("");
	
}


void CFixedRegion::OnRegionUpdate (UINT wParam, LONG lParam) {


	CString widthstr;
	CString heightstr;

	int width,height;

	width=rcUse.right-rcUse.left+1;
	height=rcUse.bottom-rcUse.top+1;
	
	widthstr.Format("%d",width);
	heightstr.Format("%d",height);
	
	((CEdit *) GetDlgItem(IDC_WIDTH))->SetWindowText(widthstr);
	((CEdit *) GetDlgItem(IDC_HEIGHT))->SetWindowText(heightstr);


	//version 1.5
	int fixtl = ((CButton *) GetDlgItem(IDC_FIXEDTOPLEFT))->GetCheck();
	if (fixtl) {
	//if (fixedcapture) {


		CString xstr;
		CString ystr;

		int x,y;

		x=rcUse.left;
		y=rcUse.top;
	
		xstr.Format("%d",x);
		ystr.Format("%d",y);

		((CEdit *) GetDlgItem(IDC_X))->SetWindowText(xstr);
		((CEdit *) GetDlgItem(IDC_Y))->SetWindowText(ystr);
	
	}


}

void CFixedRegion::OnFixedtopleft() 
{
	// TODO: Add your control notification handler code here
	int fixtl = ((CButton *) GetDlgItem(IDC_FIXEDTOPLEFT))->GetCheck();
	if (fixtl) {

		((CEdit *) GetDlgItem(IDC_X))->EnableWindow(TRUE);
		((CEdit *) GetDlgItem(IDC_Y))->EnableWindow(TRUE);

	}
	else {

		((CEdit *) GetDlgItem(IDC_X))->EnableWindow(FALSE);
		((CEdit *) GetDlgItem(IDC_Y))->EnableWindow(FALSE);

	}

	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -