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"); }