⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.cpp

📁 我的FTP一般保存在 CuteFTP 里面
💻 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 + -