📄 main.~cpp
字号:
Application->Terminate();
break;
}
case uiSETUPCMD:
{
TSetupForm *pSetupForm = new TSetupForm(m_pMainData,m_pDatabase,Application);
pSetupForm->Left = this->Left;
int iHeight = this->Top + this->Height;
if((Screen->Height - iHeight) <= pSetupForm->Height)
{
pSetupForm->Top = this->Top - pSetupForm->Height;
}
else
{
pSetupForm->Top = iHeight;
}
if(pSetupForm->ShowModal() == mrOk)
{
//
pTextPanel->Color = m_pMainData->m_pBackColor;
pTextPanel->Font->Color = m_pMainData->m_pFontColor;
pTimePanel->Color = m_pMainData->m_pBackColor;
pTimePanel->Font->Color = m_pMainData->m_pFontColor;
//m_pMemBitmap->Canvas->Brush->Color = m_pMainData->m_pBackColor;
//m_pMemBitmap->Canvas->Font->Color = m_pMainData->m_pFontColor;
switch(m_pMainData->m_iRate)
{
case 0:
{
Timer1->Interval = 500;
break;
}
case 1:
{
Timer1->Interval = 300;
break;
}
case 2:
{
Timer1->Interval = 50;
break;
}
case 3:
{
Timer1->Interval = 1;
break;
}
}
pTextPanel->Invalidate();
DrawMemBmp();
//m_pMemBitmap->Canvas->Refresh();
}
else
{
//
}
delete pSetupForm;
break;
}
default:
{
break;
}
}
}
}
void __fastcall TMainForm::ImageMouseDown(TObject* Sender, TMouseButton Button, TShiftState Shift, int X, int Y)
{
//TODO: Add your source code here
TImage *pImage;
pImage = dynamic_cast<TImage *>(Sender);
if(pImage != NULL)
{
switch(pImage->Tag)
{
case uiMOVECMD:
{
if(Button == mbLeft)
{
ReleaseCapture();
SendMessage(Handle,WM_SYSCOMMAND,SC_MOVE|HTCAPTION,0);
}
break;
}
default:
{
break;
}
}
}
TPanel *pPanel;
pPanel = dynamic_cast<TPanel *>(Sender);
if(pPanel != NULL)
{
switch(pPanel->Tag)
{
case uiTIMEPANEL:
{
if(Button == mbLeft)
{
TMonthForm *pMonthForm = new TMonthForm(m_pMainData,this);
pMonthForm->Left = this->Left;
int iHeight = this->Top + this->Height;
if((Screen->Height - iHeight) <= pMonthForm->Height)
{
pMonthForm->Top = this->Top - pMonthForm->Height;
}
else
{
pMonthForm->Top = iHeight;
}
if(pMonthForm->ShowModal() == mrOk)
{
m_pMainData->m_ConfigDay = pMonthForm->MonthCalendar1->Date;
m_pDatabase->LoadData();
DrawMemBmp();
}
delete pMonthForm;
}
break;
}
case uiTEXTPANEL:
{
if(Button == mbLeft)
{
ReleaseCapture();
SendMessage(Handle,WM_SYSCOMMAND,SC_MOVE|HTCAPTION,0);
}
break;
}
default:
{
break;
}
}
}
}
void __fastcall TMainForm::Timer1Timer(TObject *Sender)
{
//
HDC hPanelDC;
LPBITMAPVET pBitmap;
bool bNextBitmap;
time_t tmNowTime = time(NULL);
if((tmNowTime - m_tmPreTime) >= uiFlushTime)
{
String szTime = FormatDateTime("m'月'd'日' ",m_pMainData->m_ConfigDay);
szTime += FormatDateTime("hh:nn:ss",Now());
pTimePanel->Caption = szTime;
m_tmPreTime = tmNowTime;
}
//if((tmNowTime - m_tmPreTime) >= uiFlushTime)
if(!m_bOverPanel)
{
//
hPanelDC = GetDC(pTextPanel->Handle);
if(hPanelDC != NULL)
{
int iCopyWidth;
int iCopyHeight;
int iCopyTop = 1;
pBitmap = GetFirstBitmap();
if(pBitmap != NULL)
{
iCopyHeight = pBitmap->m_pBitmap->Height;
pBitmap->m_iCopyLeft++;
int iCurrWidth = GetCurrentWidth();
if(iCurrWidth < pTextPanel->Width)
{
AddNewBitmap(iCurrWidth);
}
if(pBitmap->m_pBitmap->Height > pTextPanel->Height)
{
iCopyHeight = pTextPanel->Height;
}
else
{
iCopyTop = (pTextPanel->Height - pBitmap->m_pBitmap->Height) / 2;
}
iCopyWidth = pBitmap->m_Rect.right - pBitmap->m_iCopyLeft;
bNextBitmap = true;
if(iCopyWidth > (pTextPanel->Width - g_iLeftPixel))
{
iCopyWidth = (pTextPanel->Width - g_iLeftPixel);
bNextBitmap = false;
}
::BitBlt(hPanelDC,g_iLeftPixel,iCopyTop,iCopyWidth,iCopyHeight,\
pBitmap->m_pBitmap->Canvas->Handle,pBitmap->m_iCopyLeft,0,SRCCOPY);
while(bNextBitmap)
{
pBitmap = GetNextBitmap(pBitmap);
if(pBitmap == NULL)
{
break;
}
//pBitmap->m_iCopyLeft++;
iCurrWidth = pBitmap->m_Rect.right - pBitmap->m_iCopyLeft;
int iShengWidth = pTextPanel->Width - iCopyWidth;
if(iCurrWidth > iShengWidth)
{
iCurrWidth = iShengWidth;
}
::BitBlt(hPanelDC,g_iLeftPixel + iCopyWidth ,iCopyTop,iCurrWidth,iCopyHeight,\
pBitmap->m_pBitmap->Canvas->Handle,pBitmap->m_iCopyLeft,0,SRCCOPY);
iCopyWidth += iCurrWidth;
if(iCopyWidth >= pTextPanel->Width)
{
bNextBitmap = false;
}
}
}
}
ReleaseDC(pTextPanel->Handle,hPanelDC);
}
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::CreateParams(TCreateParams & Params)
{
//TODO: Add your source code here
TForm::CreateParams(Params);
Params.Style &= ~WS_CAPTION;
Params.ExStyle &= WS_EX_TOOLWINDOW|WS_EX_TOPMOST;
}
void __fastcall TMainForm::DrawMemBmp(void)
{
//TODO: Add your source code here
vecNoteInfoIt vNoteInfoIt;
LPBITMAPVET pBitmap;
LPNOTEINFO pNoteInfo;
m_bOverPanel = true;
m_pvBitmapList.clear();
m_pMainData->SetAllBitmapFree();
pNoteInfo = m_pMainData->GetFirstNote();
if(pNoteInfo == NULL)
{
pBitmap = m_pMainData->GetAFreeBitmap();
if(pBitmap != NULL)
{
pBitmap->m_szNote = -1;
pBitmap->m_pPointBmp = m_pMainData->m_pPointBmp;
String szHint = FormatDateTime("m'月'd'日'",m_pMainData->m_ConfigDay) + m_szMainHint;
if(m_pMainData->m_bBigFont)
{
pBitmap->DrawNoteText(m_pMainData->m_pBackColor,m_pMainData->m_pFontColor,12,szHint);
}
else
{
pBitmap->DrawNoteText(m_pMainData->m_pBackColor,m_pMainData->m_pFontColor,10,szHint);
}
m_pvBitmapList.push_back(pBitmap);
}
}
else
{
//
pBitmap = m_pMainData->GetAFreeBitmap();
if(pBitmap != NULL)
{
pBitmap->m_pPointBmp = m_pMainData->m_pPointBmp;
pBitmap->m_iNoteNo = pNoteInfo->m_iNoteNo;
if(m_pMainData->m_bBigFont)
{
pBitmap->DrawNoteText(m_pMainData->m_pBackColor,m_pMainData->m_pFontColor,12,pNoteInfo->m_szNote);
}
else
{
pBitmap->DrawNoteText(m_pMainData->m_pBackColor,m_pMainData->m_pFontColor,10,pNoteInfo->m_szNote);
}
m_pvBitmapList.push_back(pBitmap);
}
}
pTextPanel->Invalidate();
m_bOverPanel = false;
}
void __fastcall TMainForm::MyWinProc(TMessage & Message)
{
//TODO: Add your source code here
if(Message.Msg == WM_TASKBARCREATED)
{
//
TrayIcon1->Restore();
TrayIcon1->Visible = true;
}
else
{
m_pOldProc(Message);
}
}
void __fastcall TMainForm::ApplicationEvents1Minimize(TObject *Sender)
{
//
if(!TrayIcon1->Visible)
{
TrayIcon1->Visible = true;
}
ShowWindow(Application->Handle, SW_HIDE);
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::ApplicationEvents1Restore(TObject *Sender)
{
//
ShowWindow(Application->Handle, SW_SHOW);
}
//---------------------------------------------------------------------------
LPBITMAPVET __fastcall TMainForm::GetFirstBitmap(void)
{
//TODO: Add your source code here
VetBitmapListIt pBitmapIt;
LPBITMAPVET pBitmap;
pBitmapIt = m_pvBitmapList.begin();
while(pBitmapIt != m_pvBitmapList.end())
{
pBitmap = (*pBitmapIt);
if(pBitmap->m_iCopyLeft >= pBitmap->m_Rect.Right)
{
m_pMainData->SetBitmapToFree(pBitmap->m_wBitmapIndex);
pBitmapIt = m_pvBitmapList.erase(pBitmapIt);
}
else
{
return pBitmap;
}
}
return NULL;
}
int __fastcall TMainForm::GetCurrentWidth(void)
{
//TODO: Add your source code here
VetBitmapListIt pBitmapIt;
int iWidth = 0;
LPBITMAPVET pBitmap;
pBitmapIt = m_pvBitmapList.begin();
for(;pBitmapIt != m_pvBitmapList.end();pBitmapIt++)
{
pBitmap = (*pBitmapIt);
iWidth += (pBitmap->m_Rect.right - pBitmap->m_iCopyLeft + 1);
}
return iWidth;
}
void __fastcall TMainForm::AddNewBitmap(int iWidth)
{
//TODO: Add your source code here
vecNoteInfoIt vNoteInfoIt;
LPBITMAPVET pBitmap;
int iCurrWidth = 0;
LPNOTEINFO pNoteInfo;
VetBitmapListIt pBitmapIt;
if(m_pvBitmapList.size() > 0)
{
pBitmap = m_pvBitmapList[m_pvBitmapList.size() - 1];
pNoteInfo = m_pMainData->GetNextNote(pBitmap->m_iNoteNo);
if(pNoteInfo != NULL)
{
while(iCurrWidth < iWidth)
{
pBitmap = m_pMainData->GetAFreeBitmap();
if(pBitmap != NULL)
{
pBitmap->m_iNoteNo = pNoteInfo->m_iNoteNo;
pBitmap->m_szNote = pNoteInfo->m_szNote;
pBitmap->m_pPointBmp = m_pMainData->m_pPointBmp;
if(m_pMainData->m_bBigFont)
{
pBitmap->DrawNoteText(m_pMainData->m_pBackColor,m_pMainData->m_pFontColor,12,pBitmap->m_szNote);
}
else
{
pBitmap->DrawNoteText(m_pMainData->m_pBackColor,m_pMainData->m_pFontColor,10,pBitmap->m_szNote);
}
m_pvBitmapList.push_back(pBitmap);
iCurrWidth += pBitmap->m_Rect.right + 1;
}
pNoteInfo = m_pMainData->GetNextNote(pNoteInfo->m_iNoteNo);
}
}
else
{
//
while(iCurrWidth < iWidth)
{
pBitmap = m_pMainData->GetAFreeBitmap();
if(pBitmap != NULL)
{
pBitmap->m_iNoteNo = -1;
String szHint = FormatDateTime("m'月'd'日'",m_pMainData->m_ConfigDay) + m_szMainHint;
pBitmap->m_szNote = szHint;
pBitmap->m_pPointBmp = m_pMainData->m_pPointBmp;
if(m_pMainData->m_bBigFont)
{
pBitmap->DrawNoteText(m_pMainData->m_pBackColor,m_pMainData->m_pFontColor,12,szHint);
}
else
{
pBitmap->DrawNoteText(m_pMainData->m_pBackColor,m_pMainData->m_pFontColor,10,szHint);
}
m_pvBitmapList.push_back(pBitmap);
iCurrWidth += pBitmap->m_Rect.right +1;
}
}
}
}
else
{
DrawMemBmp();
}
}
LPBITMAPVET __fastcall TMainForm::GetNextBitmap(LPBITMAPVET pBitmap)
{
//TODO: Add your source code here
VetBitmapListIt pBitmapIt;
pBitmapIt = find_if(m_pvBitmapList.begin(),m_pvBitmapList.end(),\
Find_BitmapByIndex(pBitmap->m_wBitmapIndex));
if(pBitmapIt != m_pvBitmapList.end())
{
pBitmapIt++;
if(pBitmapIt != m_pvBitmapList.end())
{
return *pBitmapIt;
}
}
return NULL;
}
void __fastcall TMainForm::MyException(System::TObject* Sender, Sysutils::Exception* E)
{
//TODO: Add your source code here
char szBuff[1024];
memset(szBuff,0,1024);
ExceptionErrorMessage(ExceptObject(),ExceptAddr(),szBuff,1024);
Application->MessageBoxA(szBuff,"程序错误",MB_OK);
Application->Terminate();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -