#include "stdafx.h" #include "MyWnd.h" #include "..\Page.h" #include "..\PageDlg.h"
#ifdef _DEBUG #undef THIS_FILE static char THIS_FILE[]=__FILE__; #define new DEBUG_NEW #endif
CMyWnd::CMyWnd() { }
CMyWnd::~CMyWnd() { } BEGIN_MESSAGE_MAP(CMyWnd, CWnd) //{{AFX_MSG_MAP(CTransparentWnd) ON_WM_RBUTTONDOWN() ON_WM_LBUTTONDOWN() ON_WM_MOUSEMOVE() ON_COMMAND(IDC_EXIT,OnExit) ON_COMMAND(IDC_SET,OnSet) ON_COMMAND(IDC_REFRESH,OnRefresh) ON_COMMAND(IDC_EXIT_ALL,OnExitAll) //}}AFX_MSG_MAP END_MESSAGE_MAP()
void CMyWnd::CreateMyWnd(LPCTSTR pTitle,RECT &rect) { //建立窗口 CreateEx(WS_EX_TRANSPARENT, //透明 AfxRegisterWndClass(0,AfxGetApp()->LoadCursor(IDC_PEN)), pTitle, WS_POPUP, rect, NULL, NULL, NULL ); }
void CMyWnd::OnRButtonDown(UINT nFlags, CPoint point) { CMenu m_menu; m_menu.LoadMenu(IDR_MENU1); ClientToScreen(&point); CMenu *psub = (CMenu *)m_menu.GetSubMenu(1); psub->TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON,point.x,point.y,this); m_menu.DestroyMenu();
CWnd::OnRButtonDown(nFlags, point); }
void CMyWnd::OnLButtonDown(UINT nFlags, CPoint point) { m_pt=point; CWnd::OnLButtonDown(nFlags, point); }
void CMyWnd::OnMouseMove(UINT nFlags, CPoint point) { if(nFlags & MK_LBUTTON) { CClientDC dc(this); CPen pen( ((CPageDlg*)AfxGetMainWnd())->m_page1.m_nPenStyle, ((CPageDlg*)AfxGetMainWnd())->m_page1.m_nPenWidth, ((CPageDlg*)AfxGetMainWnd())->m_page1.m_PenColor ); CPen* pOldPen=dc.SelectObject (&pen);
dc.MoveTo (m_pt.x,m_pt.y); dc.LineTo (point.x,point.y);
m_pt=point; dc.SelectObject (pOldPen); } CWnd::OnMouseMove(nFlags, point); }
void CMyWnd::OnExit() //结束画图 { ::SendMessage(GetSafeHwnd(),WM_CLOSE,0,0); ((CPageDlg*)AfxGetMainWnd())->m_page1.pWnd =NULL; delete ((CPageDlg*)AfxGetMainWnd())->m_page1.pWnd;
AfxGetMainWnd()->ShowWindow( ((CPageDlg*)AfxGetMainWnd())->m_page1.m_bMinimized? SW_SHOWMINIMIZED : SW_SHOWNORMAL); }
void CMyWnd::OnSet() //设置 { ::SendMessage(GetSafeHwnd(),WM_CLOSE,0,0); ((CPageDlg*)AfxGetMainWnd())->m_page1.pWnd =NULL; delete ((CPageDlg*)AfxGetMainWnd())->m_page1.pWnd; AfxGetMainWnd()->ShowWindow(SW_SHOWNORMAL); }
void CMyWnd::OnRefresh() //重新开始 { if(((CPageDlg*)AfxGetMainWnd())->m_page1.pWnd !=NULL) { ((CPageDlg*)AfxGetMainWnd())->m_page1.pWnd->ShowWindow(SW_HIDE); ((CPageDlg*)AfxGetMainWnd())->m_page1.pWnd->ShowWindow(SW_SHOWNORMAL); } }
void CMyWnd::OnExitAll() //退出程序 { if(MessageBox("确实要退出吗?","屏幕作图",MB_YESNO|MB_ICONQUESTION)==IDYES) AfxGetMainWnd()->SendMessage(WM_CLOSE,0,0); }
|