?? main.cpp
字號(hào):
/*
Created by Lorndragon 2003.7
功能:主程序
傳播時(shí)請(qǐng)勿修改!謝謝
*/
#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 ); //對(duì)話框動(dòng)畫效果顯示打開
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);
}
//----------------------------------------------------------------
//系統(tǒng)的回調(diào)過程,在本過程內(nèi)發(fā)送顯示/隱藏密碼的消息
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; //終止循環(huán)
}
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);//將資源載入內(nèi)存
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); //創(chuàng)建一個(gè)臨時(shí)文件,寫入資源數(shù)據(jù)
CloseHandle(file);
}
TCHAR command[256];
strcpy(command, "Play ");
strcat(command, buf);
mciSendString(command, NULL, 0, hwnd);
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -