📄 main.cpp
字号:
/*
Created by Lorndragon 2003.7
功能:主程序
传播时请勿修改!谢谢
*/
#include <windows.h>
#include "AnimEffect.h"
#include "resource.h"
LRESULT CALLBACK DialogFunc(HWND,UINT,WPARAM,LPARAM); //主窗口消息处理
BOOL CALLBACK EnumChildWindowsProc(HWND hwnd, LPARAM lParam);
void ShowAll(HWND hwnd, int i);
void PlayMidi(HWND hwnd);
RECT rc;
AnimEffect anim;
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)
{
DialogBox (hInstance, (LPCSTR)IDD_DIALOG1, NULL, (DLGPROC)DialogFunc) ;
return TRUE ;
}
LRESULT CALLBACK DialogFunc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
{
switch(message)
{
case WM_INITDIALOG:
GetWindowRect(hwnd, &rc);
anim.Setup(50, 16, 5);
anim.Open( rc ); //对话框动画效果显示打开
ShowWindow(hwnd, SW_SHOW);
case WM_SHOWWINDOW:
SetTimer(hwnd, 1, 200, NULL);
return TRUE;
case WM_TIMER:
KillTimer(hwnd, 1);
PlayMidi(hwnd);
return TRUE;
case WM_COMMAND:
switch(LOWORD(wParam))
{
case IDSHOWPASS:
ShowAll(hwnd, 1);
return (FALSE);
case IDEXIT:
SendMessage(hwnd, WM_CLOSE, 0, 0);
return (TRUE);
}
break;
case WM_CLOSE:
case WM_DESTROY:
GetWindowRect(hwnd, &rc);
anim.Close( rc );
mciSendString("Close all", NULL, 0, hwnd);
//AnimateWindow(hwnd,500, AW_CENTER | AW_HIDE);
PostQuitMessage(0);
return FALSE;
}
return (FALSE);
}
//----------------------------------------------------------------
//系统的回调过程,在本过程内发送显示/隐藏密码的消息
BOOL CALLBACK EnumChildWindowsProc(HWND hwnd, LPARAM lParam)
{
char buffer[255];
GetClassName(hwnd, buffer, 256);
if (GetWindowLong(hwnd, GWL_STYLE | ES_PASSWORD))
PostMessage(hwnd, EM_SETPASSWORDCHAR, 0, 0);
InvalidateRgn(hwnd, 0, TRUE);
return TRUE; //终止循环
}
void ShowAll(HWND hwnd, int i)
{
HWND Window_Handle;
Window_Handle = GetWindow(hwnd, GW_HWNDFIRST);
while (Window_Handle != 0)
{
if (Window_Handle != 0)
EnumChildWindows(Window_Handle, &EnumChildWindowsProc, i);
Window_Handle = GetWindow(Window_Handle, GW_HWNDNEXT);
}
}
void PlayMidi(HWND hwnd)
{
HRSRC hRes = FindResource(NULL,MAKEINTRESOURCE(IDR_MIDI1),"MIDI");
DWORD dwSize = SizeofResource(NULL , hRes); //获得指定资源的大小
DWORD dwBytes;
HGLOBAL MemoryHandle = LoadResource(NULL, hRes);//将资源载入内存
if(MemoryHandle!= NULL)
{
BYTE *MemPtr = (BYTE *)LockResource(MemoryHandle); //定位资源位置
TCHAR buf[256];
GetTempPath(255, buf);
strcat(buf, "_tmpmid.mid");
HANDLE file = CreateFile(buf, GENERIC_WRITE, NULL, NULL, CREATE_ALWAYS,
FILE_ATTRIBUTE_HIDDEN | FILE_ATTRIBUTE_READONLY, NULL);
if (file!=INVALID_HANDLE_VALUE)
{
WriteFile(file, MemoryHandle, dwSize, &dwBytes, NULL); //创建一个临时文件,写入资源数据
CloseHandle(file);
}
TCHAR command[256];
strcpy(command, "Play ");
strcat(command, buf);
mciSendString(command, NULL, 0, hwnd);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -