📄 testmenudlg.cpp
字号:
// testmenuDlg.cpp : implementation file
//
#include "stdafx.h"
#include "testmenu.h"
#include "testmenuDlg.h"
#include "testdlg1.h"
#include "testdlg2.h"
#include "testdlg3.h"
#include "testdlg4.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CTestmenuDlg dialog
CTestmenuDlg::CTestmenuDlg(CWnd* pParent /*=NULL*/)
: CDialog(CTestmenuDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CTestmenuDlg)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
z=24;
l=50;
z1=24;
l1=50;
}
void CTestmenuDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CTestmenuDlg)
// NOTE: the ClassWizard will add DDX and DDV calls here
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CTestmenuDlg, CDialog)
//{{AFX_MSG_MAP(CTestmenuDlg)
ON_WM_PAINT()
ON_WM_MOUSEMOVE()
ON_WM_LBUTTONDOWN()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CTestmenuDlg message handlers
BOOL CTestmenuDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
CenterWindow(GetDesktopWindow()); // center to the hpc screen
m_hBmpBkgnd1 = ::LoadBitmap( AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_BITMAP2) );
m_hBmpBkgnd = ::LoadBitmap( AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_BITMAP4) );
m_hBmpBkgnd2 = ::LoadBitmap( AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_BITMAP5) );
m_hBmpBkgnd3 = ::LoadBitmap( AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_BITMAP6) );
// TODO: Add extra initialization here
::SetWindowPos(this->m_hWnd, HWND_NOTOPMOST, 0, 0, 240,320, SWP_NOOWNERZORDER|SWP_SHOWWINDOW);
return TRUE; // return TRUE unless you set the focus to a control
}
void CTestmenuDlg::OnPaint()
{
CPaintDC dc(this); // device context for painting
CRect rect;
GetClientRect(&rect);
BITMAP bmp;
::GetObject(m_hBmpBkgnd, sizeof(bmp), &bmp);
HDC hDC = ::CreateCompatibleDC(NULL);
if(hDC != NULL)
{
::SelectObject(hDC, m_hBmpBkgnd1);
::BitBlt(dc.m_hDC, 0, 0, rect.Width(), rect.Height(), hDC, 0, 0, SRCCOPY);
::SelectObject(hDC, m_hBmpBkgnd);
::BitBlt(dc.m_hDC, 0, 24, rect.Width(), rect.Height(), hDC, 0, 0, SRCCOPY);
::DeleteDC(hDC);
}
SetBkMode(dc, TRANSPARENT);
TCHAR szText[128];
SetBkMode(dc, TRANSPARENT);
DrawInputText2(&dc);
DrawInputText(&dc);
wsprintf (szText, TEXT ("Time"));
ExtTextOut (dc,40, 30 , 0, NULL,
szText, lstrlen (szText), NULL);
wsprintf (szText, TEXT ("Picture"));
ExtTextOut (dc,40, 60 , 0, NULL,
szText, lstrlen (szText), NULL);
wsprintf (szText, TEXT ("Video"));
ExtTextOut (dc,40, 90 , 0, NULL,
szText, lstrlen (szText), NULL);
wsprintf (szText, TEXT ("Edtions"));
ExtTextOut (dc,40, 120 , 0, NULL,
szText, lstrlen (szText), NULL);
// Do not call CDialog::OnPaint() for painting messages
}
void CTestmenuDlg::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CClientDC dc (this);
CRect rect;
GetClientRect(&rect);
BITMAP bmp;
::GetObject(m_hBmpBkgnd, sizeof(bmp), &bmp);
HDC hDC = ::CreateCompatibleDC(NULL);
if(point.y>24&&point.y<50)
{
z=24,l=50;
}
else if(point.y>50&&point.y<76)
{
z=54,l=80;
}
else if(point.y>76&&point.y<102)
{
z=84,l=110;
}
else if(point.y>102&&point.y<128)
{
z=114,l=140;
}
else if(point.y>128&&point.y<154)
{
z=144,l=170;
}
if(z1==z)
{
}
else
{
DrawInputText2(&dc);
CRect rect(0,z1,240,l1);
InvalidateRect(rect,TRUE);
z1=z,l1=l;
DrawInputText(&dc);
}
CDialog::OnMouseMove(nFlags, point);
}
void CTestmenuDlg::DrawInputText (CDC *pDC)
{
CBrush brush (RGB (255, 255, 0));
pDC->SetBkMode(TRANSPARENT);
TCHAR szText[128];
CBrush* pOldBrush = pDC->SelectObject (&brush);
pDC->Rectangle(0, z,240, l);
pDC->SelectObject(pOldBrush);
wsprintf (szText, TEXT ("Time"));
pDC->ExtTextOut(40, 30 , 0, NULL,
szText, lstrlen (szText), NULL);
wsprintf (szText, TEXT ("Picture"));
pDC->ExtTextOut(40, 60 , 0, NULL,
szText, lstrlen (szText), NULL);
wsprintf (szText, TEXT ("Video"));
pDC->ExtTextOut(40, 90 , 0, NULL,
szText, lstrlen (szText), NULL);
wsprintf (szText, TEXT ("Edtions"));
pDC->ExtTextOut(40, 120 , 0, NULL,
szText, lstrlen (szText), NULL);
wsprintf (szText, TEXT ("Exit"));
pDC->ExtTextOut(40, 150, 0, NULL,
szText, lstrlen (szText), NULL);
}
void CTestmenuDlg::DrawInputText2 (CDC *pDC)
{
CBrush brush (RGB (255, 0, 255));
pDC->SetBkMode(TRANSPARENT);
TCHAR szText[128];
CBrush* pOldBrush = pDC->SelectObject (&brush);
pDC->SetBkColor(TRANSPARENT);
CRect rect(0,z1,240,l1);
pDC->SelectObject(pOldBrush);
/* LOGBRUSH LogBrush;
LogBrush.lbColor=RGB(255, 255, 0);
LogBrush.lbStyle=BS_NULL;
int iRop2=pDC->SetROP2(R2_XORPEN);
CBrush brush;
brush.CreateBrushIndirect(&LogBrush);
CBrush* pOldBrush = pDC->SelectObject(&brush);
pDC->SelectObject(&brush);
CPen pen(PS_SOLID,1,RGB(0,255,0));
CPen *pPen=pDC->SelectObject(&pen);
pDC->Rectangle(0,z,240,l);
// pDC->Rectangle(0,z,240,l);//试一下注释掉这句话和不注释的区别
pDC->SelectObject(pPen);
pDC->SetROP2(iRop2);
pDC->SelectObject(pOldBrush);*/
/*
pDC->SelectObject(pOldBrush); */
if(z1==24)
{
wsprintf (szText, TEXT ("Time"));
pDC->ExtTextOut(40, 30 , 0, NULL,
szText, lstrlen (szText), NULL);
}
else if(z1==54)
{
wsprintf (szText, TEXT ("Picture"));
pDC->ExtTextOut(40, 60 , 0, NULL,
szText, lstrlen (szText), NULL);
}
else if(z1==84)
{
wsprintf (szText, TEXT ("Video"));
pDC->ExtTextOut(40, 90 , 0, NULL,
szText, lstrlen (szText), NULL);
}
else if(z1==114)
{
wsprintf (szText, TEXT ("Edtions"));
pDC->ExtTextOut(40, 120 , 0, NULL,
szText, lstrlen (szText), NULL);
}
else if(z1==144)
{
wsprintf (szText, TEXT ("Exit"));
pDC->ExtTextOut(40, 150, 0, NULL,
szText, lstrlen (szText), NULL);
}
}
void CTestmenuDlg::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
if(point.y>24&&point.y<50)
{
testdlg1 test1;
test1.DoModal();
}
else if(point.y>50&&point.y<76)
{
testdlg2 test2;
test2.DoModal();
}
else if(point.y>76&&point.y<102)
{
testdlg3 test3;
test3.DoModal();
}
else if(point.y>102&&point.y<128)
{
testdlg4 test4;
test4.DoModal();
}
else if(point.y>128&&point.y<154)
{
}
CDialog::OnLButtonDown(nFlags, point);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -