www.gusucode.com > 超酷的VC++屏幕作图(电子画笔)程序源码程序 > 超酷的VC++屏幕作图(电子画笔)程序源码程序\code\Page1.cpp

    // Page1.cpp : implementation file
// Download by http://www.NewXing.com

#include "stdafx.h"
#include "Page.h"
#include "Page1.h"


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

/////////////////////////////////////////////////////////////////////////////
// CPage1 property page


IMPLEMENT_DYNCREATE(CPage1, CPropertyPage)

CPage1::CPage1() : CPropertyPage(CPage1::IDD)
{
	//{{AFX_DATA_INIT(CPage1)
	m_bAutoStart = true;
	m_nPenWidth = 3;
	m_bMinimized =(::GetPrivateProfileInt("Set_SS","bMinimized",0,".\\Settings.ini")==0 ?false:true);

	//}}AFX_DATA_INIT
	pWnd=NULL;
	m_PenColor=RGB(0,0,255);
	m_nPenStyle=PS_SOLID;
}

CPage1::~CPage1()
{
}

void CPage1::DoDataExchange(CDataExchange* pDX)
{
	CPropertyPage::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CPage1)
	DDX_Control(pDX, IDC_HOTKEY2, m_hotkey2);
	DDX_Control(pDX, IDC_HOTKEY1, m_hotkey);
	DDX_Control(pDX, IDC_BUTTON_COLOR, m_btnColor);
	DDX_Check(pDX, IDC_CHECK1_AUTOSTART, m_bAutoStart);
	DDX_Text(pDX, IDC_EDIT_PENWIDTH, m_nPenWidth);
	DDX_Check(pDX, IDC_CHECK_MINIMIZED, m_bMinimized);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CPage1, CPropertyPage)
	//{{AFX_MSG_MAP(CPage1)
	ON_WM_LBUTTONDOWN()
	ON_BN_CLICKED(IDC_CHECK1_AUTOSTART, OnCheck1Autostart)
	ON_BN_CLICKED(IDC_BUTTON_COLOR, OnButtonColor)
	ON_BN_CLICKED(IDC_SETHOTKEY, OnSethotkey)
	ON_BN_CLICKED(IDC_BUTTON_PENSTYLE, OnButtonPenstyle)
	ON_COMMAND(IDM_PS_SOLID, OnPsSolid)
	ON_COMMAND(IDM_DASHDOTDOT, OnDashdotdot)
	ON_COMMAND(IDM_PS_DASHDOT, OnPsDashdot)
	ON_COMMAND(IDM_PS_DOT, OnPsDot)
	ON_COMMAND(IDM_PS_DASH, OnPsDash)
	ON_BN_CLICKED(IDC_START, OnStart)
	ON_BN_CLICKED(IDC_CHECK_MINIMIZED, OnCheckMinimized)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CPage1 message handlers




void CPage1::OnLButtonDown(UINT nFlags, CPoint point) 
{
   AfxGetMainWnd()->SendMessage(WM_NCLBUTTONDOWN,HTCAPTION,0);	
	
	CPropertyPage::OnLButtonDown(nFlags, point);
}



void CPage1::OnStart() 
{
	AfxGetMainWnd()->ShowWindow(SW_HIDE);
	
	UpdateData(); //更新变量,以便在CMyWnd中使用 

	pWnd = new CMyWnd;
	CRect rect(0, 0, GetSystemMetrics(SM_CXFULLSCREEN), GetSystemMetrics(SM_CXFULLSCREEN));
	pWnd->CreateMyWnd("", rect);        
	pWnd->ShowWindow(SW_SHOW); 
	pWnd->SetWindowPos(&CWnd::wndTopMost,0,0,0,0,SWP_NOSIZE|SWP_NOMOVE);
	
}

void CPage1::OnCheck1Autostart() 
{
	UpdateData();
}

void CPage1::OnButtonColor() 
{
	this->m_PenColor=m_btnColor.GetColor();
}

BOOL CPage1::OnInitDialog() 
{
	CPropertyPage::OnInitDialog();
	
	m_btnColor.SetColor(m_PenColor);

	WORD vKey=::GetPrivateProfileInt("HotKey_SS","vKey",0,".\\Settings.ini");
	WORD sKey=::GetPrivateProfileInt("HotKey_SS","sKey",0,".\\Settings.ini");
	m_hotkey.SetHotKey(vKey, sKey);	

	WORD vKey2=::GetPrivateProfileInt("HotKey_SS","vKey2",0,".\\Settings.ini");
	WORD sKey2=::GetPrivateProfileInt("HotKey_SS","sKey2",0,".\\Settings.ini");
	m_hotkey2.SetHotKey(vKey2, sKey2);	

	UpdateData(false);

	SetDlgItemText(IDC_BUTTON_PENSTYLE,"PS_SOLID");
	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CPage1::OnSethotkey() 
{
	UpdateData(TRUE);
	
	WORD vKey, sKey;
	m_hotkey.GetHotKey(vKey, sKey);
	
	CString strVKey,strSKey;
	strVKey.Format("%d",vKey);
	strSKey.Format("%d",sKey);	
	
	::WritePrivateProfileString("HotKey_SS","vKey",strVKey,".\\Settings.ini");  //Start Stop
	::WritePrivateProfileString("HotKey_SS","sKey",strSKey,".\\Settings.ini");
	
	UINT fs = 0;
	if (sKey & HOTKEYF_ALT)
	{
		fs	|= MOD_ALT;
	}
	if (sKey & HOTKEYF_CONTROL)
	{
		fs	|= MOD_CONTROL;
	}
	if (sKey & HOTKEYF_SHIFT)
	{
		fs	|= MOD_SHIFT;
	}	
	RegisterHotKey(AfxGetMainWnd()->m_hWnd, 401, fs, vKey);
/*-----------------------------------------------------------------------*/	
	
	m_hotkey2.GetHotKey(vKey, sKey);	

	strVKey.Format("%d",vKey);
	strSKey.Format("%d",sKey);	
	
	::WritePrivateProfileString("HotKey_SS","vKey2",strVKey,".\\Settings.ini");  //Start Stop
	::WritePrivateProfileString("HotKey_SS","sKey2",strSKey,".\\Settings.ini");
	
	UINT fs2 = 0;
	if (sKey & HOTKEYF_ALT)
	{
		fs2	|= MOD_ALT;
	}
	if (sKey & HOTKEYF_CONTROL)
	{
		fs2	|= MOD_CONTROL;
	}
	if (sKey & HOTKEYF_SHIFT)
	{
		fs2	|= MOD_SHIFT;
	}	
	RegisterHotKey(AfxGetMainWnd()->m_hWnd, 402, fs2, vKey);
}

void CPage1::OnButtonPenstyle() 
{	
	CPoint point;
	::GetCursorPos(&point);
	COfficeXPMenu m_menu;
	m_menu.LoadMenu(IDR_MENU1);	
	m_menu.SetType(TYPE_XP);
	
//	ClientToScreen(&point);
	COfficeXPMenu *psub = (COfficeXPMenu *)m_menu.GetSubMenu(2); 
	psub->TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON,point.x,point.y,this);
	m_menu.DestroyMenu();	
}

void CPage1::OnPsSolid() 
{
	m_nPenStyle=PS_SOLID;
	SetDlgItemText(IDC_BUTTON_PENSTYLE,"PS_SOLID");

}

void CPage1::OnPsDash() 
{
	m_nPenStyle=PS_DASH;
	SetDlgItemText(IDC_BUTTON_PENSTYLE,"PS_DASH");
}

void CPage1::OnPsDot() 
{
	m_nPenStyle=PS_DOT;
	SetDlgItemText(IDC_BUTTON_PENSTYLE,"PS_DOT");
}

void CPage1::OnPsDashdot() 
{
	m_nPenStyle=PS_DASHDOT;
	SetDlgItemText(IDC_BUTTON_PENSTYLE,"PS_DASHDOT");
}

void CPage1::OnDashdotdot() 
{
	SetDlgItemText(IDC_BUTTON_PENSTYLE,"PS_DASHDOTDOT");
	m_nPenStyle=PS_DASHDOTDOT;
}










void CPage1::OnCheckMinimized() 
{
	UpdateData();
	::WritePrivateProfileString("Set_SS","bMinimized",this->m_bMinimized? "1":"0",".\\Settings.ini");
}