www.pudn.com > kugong.rar > MyWnd.cpp


// MyWnd.cpp: implementation of the CMyWnd class. 
// 
////////////////////////////////////////////////////////////////////// 
 
#include "stdafx.h" 
#include "ljxscreen.h" 
#include "MyWnd.h" 
 
#ifdef _DEBUG 
#undef THIS_FILE 
static char THIS_FILE[]=__FILE__; 
#define new DEBUG_NEW 
#endif 
 
////////////////////////////////////////////////////////////////////// 
// Construction/Destruction 
////////////////////////////////////////////////////////////////////// 
 
CMyWnd::CMyWnd() 
{ 
  ADxy=4;          //初始化画笔大小 
  MouseFlag=TRUE;  //初始化标志 
 
} 
 
CMyWnd::~CMyWnd() 
{ 
 
} 
BEGIN_MESSAGE_MAP(CMyWnd, CWnd) 
	//{{AFX_MSG_MAP(CTransparentWnd) 
	ON_WM_RBUTTONDOWN() 
	ON_WM_LBUTTONDOWN() 
	ON_WM_LBUTTONUP() 
	ON_WM_MOUSEMOVE() 
	ON_COMMAND(IDR_EXIT, OnExit) 
	ON_COMMAND(IDR_RED, OnRed) 
	ON_COMMAND(IDR_YELLOW, OnYellow) 
	ON_COMMAND(IDR_GREEN, OnGreen) 
	ON_COMMAND(IDR_BLUE, OnBlue) 
/*	ON_COMMAND(IDR_ADD, OnAdd)*/ 
	ON_COMMAND(IDR_Line1, OnLine1) 
	ON_COMMAND(IDR_Line2, OnLine2) 
	//}}AFX_MSG_MAP 
END_MESSAGE_MAP() 
 
 
void CMyWnd::CreateMyWnd(LPCTSTR pTitle,RECT &rect) 
{    
	//建立窗口 
   CreateEx(WS_EX_TRANSPARENT, 
   AfxRegisterWndClass(0,AfxGetApp()->LoadStandardCursor(IDC_ARROW)), 
						pTitle, 
						WS_POPUP, 
						rect, 
						NULL, 
						NULL, 
						NULL ); 
} 
 
void CMyWnd::OnRButtonDown(UINT nFlags, CPoint point) 
{    
	//显示菜单, 
   CWnd::OnRButtonDown(nFlags, point); 
   m_popmenu.LoadMenu(IDR_POPUP); 
   BCMenu::SetMenuDrawMode(BCMENU_DRAWMODE_XP); 
   //拷贝菜单位图 
   m_popmenu.ModifyODMenu(NULL, IDR_RED,IDB_RED); 
   m_popmenu.ModifyODMenu(NULL, IDR_GREEN,IDB_GREEN); 
   m_popmenu.ModifyODMenu(NULL, IDR_BLUE,IDB_BLUE); 
   m_popmenu.ModifyODMenu(NULL, IDR_YELLOW,IDB_YELLOW); 
/*   m_popmenu.ModifyODMenu(NULL, IDR_ADD,IDB_ADD);*/ 
/*   m_popmenu.ModifyODMenu(NULL, IDR_ADD,IDB_BITMAP1);*/ 
   m_popmenu.ModifyODMenu(NULL, IDR_Line1,IDB_BITMAP2); 
   m_popmenu.ModifyODMenu(NULL, IDR_Line2,IDB_BITMAP1); 
   m_popmenu.ModifyODMenu(NULL, IDR_EXIT,IDB_EXIT); 
/*   m_popmenu.ModifyODMenu(NULL, IDR_ABOUT,IDB_ABOUT);*/ 
 
   ClientToScreen(&point); 
   BCMenu *psub = (BCMenu *)m_popmenu.GetSubMenu(0);  
   psub->TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON,point.x,point.y,this); 
   m_popmenu.DestroyMenu(); 
 
} 
 
void CMyWnd::OnExit()//退出 
{    
	//退出前恢复屏幕保护和电源管理 
//	SystemParametersInfo (SPI_GETLOWPOWERTIMEOUT, 0, NULL, 0); 
//	SystemParametersInfo (SPI_GETPOWEROFFTIMEOUT, 0, NULL, 0); 
//	SystemParametersInfo (SPI_GETSCREENSAVETIMEOUT, 0, NULL, 0); 
      
//	显示WINDOWS系统任务栏 
    ::ShowWindow (::FindWindow("Shell_TrayWnd",NULL),SW_SHOW); 
 
      DestroyWindow(); 
} 
 
void CMyWnd::OnLButtonDown(UINT nFlags, CPoint point) 
{ 
     CWnd::OnLButtonDown(nFlags, point); 
	 MouseFlag=FALSE;//设置鼠标左键按下标志 
     if (!MouseFlag) 
	 {               //取得鼠标坐标 
	 xx=point.x; 
	 yy=point.y; 
	 } 
} 
void CMyWnd::OnLButtonUp(UINT nFlags, CPoint point) 
{ 
   CWnd::OnLButtonUp(nFlags, point); 
   if(!MouseFlag) 
   { 
	   MouseFlag=TRUE;//设置鼠标左键释放标志 
	   ReleaseCapture(); 
   } 
} 
 
void CMyWnd::OnMouseMove(UINT nFlags, CPoint point)  
{ 
	CWnd::OnMouseMove(nFlags, point); 
 
	 if (!MouseFlag) //取得鼠标移动的当前坐标,并在屏幕画图 
	 { 
 
	CClientDC dc(this); 
	CPen Pen; 
	CPen *OldPen; 
    Pen.CreatePen(PS_SOLID,ADxy,RGB(ColorX,ColorY,ColorZ)); 
	OldPen=dc.SelectObject (&Pen); 
	dc.MoveTo (xx,yy); 
	dc.LineTo (point.x,point.y); 
	xx=point.x; 
	yy=point.y; 
	dc.SelectObject (&OldPen); 
	 } 
 
 
} 
 
 
 
void CMyWnd::OnRed()//选中绿色 
{    
      ColorX=255; 
	  ColorY=0; 
	  ColorZ=0; 
} 
 
void CMyWnd::OnYellow()//选中黄色 
{     
      ColorX=255; 
	  ColorY=255; 
	  ColorZ=0; 
} 
 
void CMyWnd::OnGreen() //选中绿色 
{     
      ColorX=0; 
	  ColorY=255; 
	  ColorZ=0; 
} 
 
void CMyWnd::OnBlue()   //选中蓝色 
{     
      ColorX=0; 
	  ColorY=0; 
	  ColorZ=255; 
} 
 
void CMyWnd::OnAdd()  //增加画笔大小 
{ 
	ADxy+=2; 
} 
 
//DEL void CMyWnd::OnDec()  //增加画笔大小 
//DEL { 
//DEL 	if (ADxy!=1) 
//DEL 	 ADxy-=1; 
//DEL } 
 
//void CMyWnd::OnAbout() //增加画笔大小 
//{ 
//	//AfxMessageBox("你好"); 
//	//显示关于对话框 
//	CLjxDlg dlg; 
//	int xxx=dlg.DoModal(); 
// } 
 
 
 
 
 
void CMyWnd::OnLine1() 
{ 
	ADxy=12; 
} 
 
void CMyWnd::OnLine2() 
{ 
    ADxy=4; 
}