📄 mainframe.cpp
字号:
// CMainFrame.cpp: implementation of the CMainFrame class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "MainFrame.h"
#define ITEM_W 85
#define ITEM_H 90
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CMainFrame::CMainFrame()
{
m_nBackColor=RGB(6,105,178)|EdgeRGB(255,192,0);
m_nStyle|=WS_MAXIMIZE;
//m_nStyle &= ~WS_CAPTION;
}
CMainFrame::~CMainFrame()
{
}
//消息处理函数
void CMainFrame::WndProc(int nMessage, int wParam, int lParam)
{
GWnd* pWnd;
switch(nMessage)
{
case WM_PAINT:
if(wParam & ~ODA_CLIENT)OnNcPaint();
if(wParam & ODA_CLIENT){OnPaint();DrawControls();}
break;
case WM_COMMAND:
pWnd=(GWnd*)wParam;
if(pWnd==&m_btnOK)OnOK();
else if(pWnd==&m_btnCancel)OnCancel();
else OnRadio(pWnd);
break;
case WM_CREATE:
OnCreate();
break;
case WM_CLOSE:
if(wParam)OnQueryClose();
break;
case WM_TIMER:
OnTimer(lParam);
break;
case WM_LBUTTONDOWN:
GDialog::WndProc(nMessage, wParam,lParam);
if(!(m_nState & ODS_GRAYED) && PtInRect(wParam,lParam,m_Rect))OnButton(TRUE,wParam,lParam);
break;
case WM_LBUTTONUP:
if(PtInRect(wParam,lParam,m_Rect))OnButton(FALSE,wParam,lParam);
else GDialog::WndProc(nMessage, wParam,lParam);
break;
default:
GDialog::WndProc(nMessage, wParam,lParam);
break;
}
}
void CMainFrame::OnCreate()
{
m_nTextTop=-20;
GDialog::OnCreate();
m_strText="GSPDA 2005";
int nWidth=m_Rect.right-m_Rect.left;
int nHeight=m_Rect.bottom-m_Rect.top;
/* KString str;
for(int i=0;i<5;i++)
{
str.Format("Sng%d",i);
AddControl(&m_btnRadio[i],str,BS_RADIOBUTTON|BS_PUSHLIKE);
m_btnRadio[i].MoveWindow(nWidth-(i<3?80:100),10+i*30,75,25);
}
m_btnRadio[0].m_nStyle|=WS_GROUP;
m_btnRadio[3].m_nStyle|=WS_GROUP;*/
//AddControl(&m_btnOK,"启动",0);
//m_btnOK.MoveWindow(nWidth-160,nHeight-40,70,35);
/*AddControl(&m_btnCancel,"退出",0);
m_btnCancel.MoveWindow(nWidth-80,nHeight-40,70,35);
m_rectClick.left=-1;*/
}
void CMainFrame::OnPaint()
{
//GDialog::OnPaint();
{
int y,dy,y1=m_Rect.top,y2=m_Rect.bottom,h=y2-y1+1;
int c,r,g,b;
for(y=y1;y<=y2;y++)
{
dy=y2-y;
r=(255-6)*dy/h+6;
g=(255-105)*dy/h+105;
b=(255-178)*dy/h+178;
m_nForeColor=RGB(r,g,b);
Line(m_Rect.left,y,m_Rect.right,y);
}
m_nForeColor=RGB(0,0,0);
}
RECT r;
r=MakeRect(m_Rect.left,m_Rect.top-m_nTextTop,ITEM_W,ITEM_H-5);
DrawItem(&acBmpMyComp,"Camera",r);
r.left+=ITEM_W;r.right+=ITEM_W;
DrawItem(&acBmpUser,"User",r);
r.left+=ITEM_W;r.right+=ITEM_W;
DrawItem(&acBmpPower,"GSM/3G",r);
r=MakeRect(m_Rect.left,r.bottom+5,ITEM_W,ITEM_W-5);
DrawItem(&acBmpChart,"Vedio",r);
r.left+=ITEM_W;r.right+=ITEM_W;
DrawItem(&acBmpHelp,"Audio",r);
}
void CMainFrame::OnQueryClose()
{
if(m_nDlgResult==-1)
{
int nResult=MessageBox("Close GSPDA?",NULL,MB_YESNO|MB_ICONQUESTION);
if(nResult==IDNO)m_nDlgResult=0;
}
}
void CMainFrame::DrawItem(const BITMAP *bm, LPCTSTR szText,RECT rect)
{
RECT r;
int w0=(rect.left+rect.right+1)/2;
r=MakeRect(w0-bm->bmWidth/2,rect.top+m_pFont->nHeight/2,bm->bmWidth,bm->bmHeight);
DrawBitmap(bm,r);
r.bottom=rect.bottom-m_pFont->nHeight;
r.left=rect.left;r.right=rect.right;
DrawText(szText,r,DT_CENTER|DT_BOTTOM);
}
void CMainFrame::OnOK()
{
/*GIME dlg;
dlg.m_btn[0].m_strText=m_btnOK.m_strText;
dlg.DoModal();
m_btnOK.m_strText=dlg.m_btn[0].m_strText;*/
GIME dlg;
KString str;
KFile file;
file.Open("fdj.ini",KFile::modeCreate);
file.ReadString(str);
dlg.m_btn[0].m_strText=str;
dlg.DoModal();
str=dlg.m_btn[0].m_strText;
file.SeekToBegin();
file.WriteString(str);
}
void CMainFrame::OnCancel()
{
m_nDlgResult=IDCANCEL;
}
void CMainFrame::OnRadio(GWnd *pWnd)
{
if(pWnd==&m_btnRadio[0])
{
for(int i=0;i<5;i++)
{
m_btnRadio[i].m_nStyle |=BS_PUSHLIKE;
m_btnRadio[i].PostMessage(WM_PAINT,-1,-1);
}
}
else if(pWnd==&m_btnRadio[1])
{
for(int i=0;i<5;i++)
{
m_btnRadio[i].m_nStyle &= ~BS_PUSHLIKE;
m_btnRadio[i].m_nStyle &= ~BS_LEFTTEXT;
m_btnRadio[i].PostMessage(WM_PAINT,-1,-1);
}
}
else if(pWnd==&m_btnRadio[2])
{
for(int i=0;i<5;i++)
{
m_btnRadio[i].m_nStyle &= ~BS_PUSHLIKE;
m_btnRadio[i].m_nStyle |= BS_LEFTTEXT;
m_btnRadio[i].PostMessage(WM_PAINT,-1,-1);
}
}
}
void CMainFrame::OnTimer(int nTick)
{
m_strText.Format("Tick:%d",nTick);
PostMessage(WM_PAINT,ODA_FOCUS,-1);
}
void CMainFrame::OnButton(BOOL bDown, int x, int y)
{
x-=m_Rect.left;y-=m_Rect.top;
int nColor=m_nForeColor;
if(bDown==1)
{
if(m_Rect.left!=-1)
{
OnButton(-1,m_rectClick.left,m_rectClick.top);
}
m_rectClick.left=m_Rect.left+(x/ITEM_W)*ITEM_W;
m_rectClick.right=m_rectClick.left+ITEM_W;
m_rectClick.top=m_Rect.top-m_nTextTop-(y/ITEM_H)*ITEM_H;
m_rectClick.bottom=m_rectClick.top+ITEM_H-5;
m_nForeColor=RGB(255,255,0)|PS_DOT1;
Rectangle(m_rectClick);
}
else
{
OnPaint();DrawControls();
//m_nForeColor=m_nBackColor & 0xffffff;
//Rectangle(m_rectClick);
if(PtInRect(x,y,m_rectClick) && bDown==0)
{
x/=ITEM_W;y/=ITEM_H;
if(x==0 && y==0)
{
OnSystem();
}
if(x==0 && y==1)
{
OnChart();
}
}
m_rectClick.left=-1;
}
m_nForeColor=nColor;
}
void CMainFrame::OnSystem()
{
CGenIO dlg;
dlg.DoModal();
}
void CMainFrame::OnChart()
{
CVibration dlg;
dlg.DoModal();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -