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