📄 main.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#include <dir.h>
#pragma hdrstop
#include "Main.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TFormMain *FormMain;
//---------------------------------------------------------------------------
__fastcall TFormMain::TFormMain(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
bool __fastcall TFormMain::TrayMessage(DWORD dwMessage)
{
NOTIFYICONDATA tnd; //定义一个NOTIFYICONDATA变量保存消息
PSTR pszTip; //PSTR是Char*的重定义类型,这个字符指针用来保存提示文本
pszTip = "程序示例"; //取得提示文本
//下面初始化tnd结构
tnd.cbSize = sizeof(NOTIFYICONDATA); //取得结构大小
tnd.hWnd = Handle; //HWND类型,取得窗口句柄
tnd.uID = IDC_MYICON; //图标标识符为1006(宏定义)
tnd.uFlags = NIF_MESSAGE | NIF_ICON | NIF_TIP; //有效成员组合标识
tnd.uCallbackMessage = MYWM_NOTIFY; //一个自定义的消息
if (dwMessage == NIM_MODIFY) //如果为修改图标消息
{
tnd.hIcon = (HICON)LoadImage(NULL, "E:\\袁辉\\书稿\\托盘窗口\\myicon.ico", IMAGE_ICON,
16, 16, LR_LOADFROMFILE); //取得图标句柄
if (pszTip) //如果pszTip中不空
lstrcpyn(tnd.szTip, pszTip, sizeof(tnd.szTip)); //那么,将其内容复制到消息结构的szTip成员中
else
tnd.szTip[0] = '\0'; //否则,给szTip成员赋空值
}
else //如果是其他消息
{
tnd.hIcon = NULL; //则将图标句柄清空
tnd.szTip[0] = '\0'; //给szTip成员赋空值
}
return (Shell_NotifyIcon(dwMessage, &tnd));
}
//---------------------------------------------------------------------------
void __fastcall TFormMain::MyNotify(TMessage& Msg)
{
POINT MousePos;
switch(Msg.LParam)
{
case WM_LBUTTONUP:
if (GetCursorPos(&MousePos))
{
PopupMenu1->PopupComponent = FormMain;
SetForegroundWindow(Handle);
PopupMenu1->Popup(MousePos.x, MousePos.y);
}
else
Show();
break;
default:
break;
}
TForm::Dispatch(&Msg);
}
//---------------------------------------------------------------------------
void __fastcall TFormMain::FormDestroy(TObject *Sender)
{
TrayMessage(NIM_DELETE);
}
//---------------------------------------------------------------------------
void __fastcall TFormMain::CheckBox1Click(TObject *Sender)
{
if (CheckBox1->Checked)
{
TrayMessage(NIM_ADD);
TrayMessage(NIM_MODIFY);
}
else
TrayMessage(NIM_DELETE);
HideButton->Enabled = CheckBox1->Checked;
}
//---------------------------------------------------------------------------
void __fastcall TFormMain::HideButtonClick(TObject *Sender)
{
Hide();
TrayMessage(NIM_ADD);
TrayMessage(NIM_MODIFY);
}
//---------------------------------------------------------------------------
void __fastcall TFormMain::ExitButtonClick(TObject *Sender)
{
TrayMessage(NIM_DELETE);
Close();
}
//---------------------------------------------------------------------------
void __fastcall TFormMain::MenuShowClick(TObject *Sender)
{
if(!CheckBox1->Checked)
TrayMessage(NIM_DELETE);
Show();
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -