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

📄 w32g_i.c

📁 linux上播放midi音乐,但是要一些设置.可网上查找. 软件名称: TiMidity++-2.13.0.tar
💻 C
📖 第 1 页 / 共 5 页
字号:
static void InitMainWnd(HWND hParentWnd){	HICON hIcon = LoadImage(hInst, MAKEINTRESOURCE(IDI_ICON_TIMIDITY), IMAGE_ICON, 16, 16, 0);	if ( hMainWnd != NULL ) {		DestroyWindow ( hMainWnd );		hMainWnd = NULL;	}	INILoadMainWnd();	if (PlayerLanguage == LANGUAGE_JAPANESE)	  hMainWnd = CreateDialog(hInst,MAKEINTRESOURCE(IDD_DIALOG_MAIN),hParentWnd,MainProc);	else	  hMainWnd = CreateDialog(hInst,MAKEINTRESOURCE(IDD_DIALOG_MAIN_EN),hParentWnd,MainProc);	InitOutputMenu(hMainWnd);	if (hIcon!=NULL) SendMessage(hMainWnd,WM_SETICON,FALSE,(LPARAM)hIcon);	{  // Set the title of the main window again.   	char buffer[256];   	SendMessage( hMainWnd, WM_GETTEXT, (WPARAM)255, (LPARAM)buffer);   	SendMessage( hMainWnd, WM_SETTEXT, (WPARAM)0, (LPARAM)buffer);	}	MainWndInfoApply();}static int MainWndInfoReset(HWND hwnd){	memset(&MainWndInfo,0,sizeof(MAINWNDINFO));	MainWndInfo.PosX = - 1;	MainWndInfo.PosY = - 1;	return 0;}static int MainWndInfoApply(void){	return 0;}void MainCmdProc(HWND hwnd, int wId, HWND hwndCtl, UINT wNotifyCode);void MainWndSetPauseButton(int flag);void MainWndSetPlayButton(int flag);void MainWndToggleConsoleButton(void);void MainWndUpdateConsoleButton(void);void MainWndToggleTracerButton(void);void MainWndUpdateTracerButton(void);void MainWndToggleListButton(void);void MainWndUpdateListButton(void);void MainWndToggleDocButton(void);void MainWndUpdateDocButton(void);void MainWndToggleWrdButton(void);void MainWndUpdateWrdButton(void);void MainWndToggleSoundSpecButton(void);void MainWndUpdateSoundSpecButton(void);void ShowSubWindow(HWND hwnd,int showflag);void ToggleSubWindow(HWND hwnd);static void VersionWnd(HWND hParentWnd);static void TiMidityWnd(HWND hParentWnd);static void SupplementWnd(HWND hParentWnd);static void InitCanvasWnd(HWND hwnd);static void CanvasInit(HWND hwnd);static void InitPanelWnd(HWND hwnd);static void MPanelInit(HWND hwnd);static void InitMainToolbar(HWND hwnd);static void InitSubWndToolbar(HWND hwnd);static UINT PlayerForwardAndBackwardEventID = 0;static void CALLBACK PlayerForward(UINT IDEvent, UINT uReserved, DWORD dwUser,	DWORD dwReserved1, DWORD dwReserved2){	w32g_send_rc(RC_FORWARD, play_mode->rate);}static void CALLBACK PlayerBackward(UINT IDEvent, UINT uReserved, DWORD dwUser,	DWORD dwReserved1, DWORD dwReserved2){	w32g_send_rc(RC_BACK, play_mode->rate);}extern void ShowPrefWnd ( void );extern void HidePrefWnd ( void );extern BOOL IsVisiblePrefWnd ( void );BOOL CALLBACKMainProc(HWND hwnd, UINT uMess, WPARAM wParam, LPARAM lParam){	static BOOL PrefWndShow;	// PrintfDebugWnd("MainProc: Mess%lx WPARAM%lx LPARAM%lx\n",uMess,wParam,lParam);	switch (uMess)	{      case WM_INITDIALOG:		PrefWndShow = FALSE;		update_subwindow();		MainWndUpdateConsoleButton();		MainWndUpdateTracerButton();		MainWndUpdateListButton();		MainWndUpdateDocButton();		MainWndUpdateWrdButton();		MainWndUpdateSoundSpecButton();		InitPanelWnd(hwnd);		InitCanvasWnd(hwnd);		InitMainToolbar(hwnd);		InitSubWndToolbar(hwnd);	    {			HMENU hMenu = GetSystemMenu(hwnd, FALSE);#if 1			RemoveMenu(hMenu,SC_MAXIMIZE,MF_BYCOMMAND);			RemoveMenu(hMenu,SC_SIZE,MF_BYCOMMAND);#else			EnableMenuItem(hMenu, SC_MAXIMIZE, MF_BYCOMMAND	| MF_GRAYED);			EnableMenuItem(hMenu, SC_SIZE, MF_BYCOMMAND | MF_GRAYED);#endif			EnableMenuItem(hMenu, SC_MOVE, MF_BYCOMMAND | MF_GRAYED);			InsertMenu(hMenu, 0, MF_BYPOSITION | MF_SEPARATOR, 0, 0);			InsertMenu(hMenu, 0, MF_BYPOSITION, SC_SCREENSAVE, "Screen Saver");			InsertMenu(hMenu, 0, MF_BYPOSITION | MF_SEPARATOR, 0, 0);			InsertMenu(hMenu, 0, MF_BYPOSITION | MF_STRING, IDM_STOP, "Stop");			InsertMenu(hMenu, 0, MF_BYPOSITION | MF_STRING, IDM_PAUSE, "Pause");			InsertMenu(hMenu, 0, MF_BYPOSITION | MF_STRING, IDM_PREV, "Prev");			InsertMenu(hMenu, 0, MF_BYPOSITION | MF_STRING, IDM_NEXT, "Next");			InsertMenu(hMenu, 0, MF_BYPOSITION | MF_STRING, IDM_PLAY, "Play");			DrawMenuBar(hwnd);    	}			{				RECT d_rc, w_rc;				GetClientRect ( GetDesktopWindow (), &d_rc );				GetWindowRect ( hwnd, &w_rc );				d_rc.right -= w_rc.right - w_rc.left;				d_rc.bottom -= w_rc.bottom - w_rc.top;				if ( MainWndInfo.PosX < d_rc.left ) MainWndInfo.PosX = d_rc.left; 				if ( MainWndInfo.PosX > d_rc.right ) MainWndInfo.PosX = d_rc.right; 				if ( MainWndInfo.PosY < d_rc.top ) MainWndInfo.PosY = d_rc.top; 				if ( MainWndInfo.PosY > d_rc.bottom ) MainWndInfo.PosY = d_rc.bottom; 				SetWindowPosSize(GetDesktopWindow(),hwnd,MainWndInfo.PosX, MainWndInfo.PosY );			}		return FALSE;	  HANDLE_MSG(hwnd,WM_COMMAND,MainCmdProc);	  case WM_DESTROY:		if(save_playlist_once_before_exit_flag) {			save_playlist_once_before_exit_flag = 0;			w32gSaveDefaultPlaylist();		}		INISaveMainWnd();		PostQuitMessage(0);		break;	  case WM_CLOSE:		if(save_playlist_once_before_exit_flag) {			save_playlist_once_before_exit_flag = 0;			w32gSaveDefaultPlaylist();		}		DestroyWindow(hwnd);		break;      case WM_SIZE:		if(wParam == SIZE_MINIMIZED){			if ( IsVisiblePrefWnd () )				PrefWndShow = TRUE;			else				PrefWndShow = FALSE;			HidePrefWnd ();			update_subwindow();			OnHide();		} else if ( wParam == SIZE_RESTORED ) {			if ( PrefWndShow ) {				ShowPrefWnd ();			}		}		return FALSE;	  case WM_MOVE:		if ( ! IsIconic(hwnd) ) {			RECT rc;			GetWindowRect(hwnd,&rc);			MainWndInfo.PosX = rc.left;			MainWndInfo.PosY = rc.top;		}		break;      case WM_QUERYOPEN:		OnShow();		return FALSE;      case WM_DROPFILES:		w32g_send_rc(RC_EXT_DROP, (int32)wParam);		return FALSE;      case WM_HSCROLL: {		  int nScrollCode = (int)LOWORD(wParam);		  int nPos = (int) HIWORD(wParam);		  HWND bar = (HWND)lParam;		  if(bar != hMainWndScrollbarProgressWnd)			  break;		  switch(nScrollCode)		  {			case SB_THUMBTRACK:			case SB_THUMBPOSITION:			  progress_jump = nPos;			  break;			case SB_LINELEFT:			  progress_jump = GetScrollPos(bar, SB_CTL) - 1;			  if(progress_jump < 0)				  progress_jump = 0;			  break;			case SB_PAGELEFT:			  progress_jump = GetScrollPos(bar, SB_CTL) - 10;			  if(progress_jump < 0)				  progress_jump = 0;			  break;			case SB_LINERIGHT:			  progress_jump = GetScrollPos(bar, SB_CTL) + 1;			  break;			case SB_PAGERIGHT:			  progress_jump = GetScrollPos(bar, SB_CTL) + 10;			  break;			case SB_ENDSCROLL:			  if(progress_jump != -1)			  {				  w32g_send_rc(RC_JUMP, progress_jump * play_mode->rate);				  SetScrollPos(hMainWndScrollbarProgressWnd, SB_CTL,							   progress_jump, TRUE);				  progress_jump = -1;			  }			  break;		  }		  break;		}	  break;	  case WM_VSCROLL: {		int nScrollCode = (int) LOWORD(wParam);		int nPos = (int) HIWORD(wParam);		HWND bar = (HWND) lParam;		static int pos = -1;		if(bar != hMainWndScrollbarVolumeWnd)			break;		switch(nScrollCode)		{		  case SB_THUMBTRACK:		  case SB_THUMBPOSITION:			pos = nPos;			break;		  case SB_LINEUP:		  case SB_PAGEUP:			pos = GetScrollPos(bar, SB_CTL) - 5;			if(pos < 0)				pos = 0;			break;		  case SB_LINEDOWN:		  case SB_PAGEDOWN:			pos = GetScrollPos(bar, SB_CTL) + 5;			if(pos > W32G_VOLUME_MAX)				pos = W32G_VOLUME_MAX;			break;		  case SB_ENDSCROLL:			if(pos != -1)			{				w32g_send_rc(RC_CHANGE_VOLUME,							 (W32G_VOLUME_MAX - pos) - amplification);				SetScrollPos(bar, SB_CTL, pos, TRUE);				pos = -1;			}			break;		}	  }	  break;	  case WM_SYSCOMMAND:		switch(wParam){		  case IDM_STOP:		  case IDM_PAUSE:		  case IDM_PREV:		  case IDM_PLAY:		  case IDM_NEXT:		  case IDM_FOREWARD:		  case IDM_BACKWARD:			SendMessage(hwnd,WM_COMMAND,wParam,(LPARAM)NULL);			break;		  default:			break;		}		return FALSE;      case WM_NOTIFY:		switch(wParam) {		  case IDC_TOOLBARWINDOW_MAIN:{			  LPTBNOTIFY TbNotify = (LPTBNOTIFY)lParam;			  switch(TbNotify->iItem){				case IDM_BACKWARD:				  if(TbNotify->hdr.code==TBN_BEGINDRAG){#ifdef W32GUI_DEBUG					  //PrintfDebugWnd("IDM_BACKWARD: BUTTON ON\n");#endif					  PlayerBackward(0,0,0,0,0);					  PlayerForwardAndBackwardEventID =						  timeSetEvent(100, 100, PlayerBackward, 0, TIME_PERIODIC);				  }				  if(PlayerForwardAndBackwardEventID != 0)					  if(TbNotify->hdr.code==TBN_ENDDRAG){#ifdef W32GUI_DEBUG						  //PrintfDebugWnd("IDM_BACKWARD: BUTTON OFF\n");#endif						  timeKillEvent(PlayerForwardAndBackwardEventID);						  PlayerForwardAndBackwardEventID = 0;					  }				  break;				case IDM_FOREWARD:				  if(TbNotify->hdr.code ==TBN_BEGINDRAG &&					 PlayerForwardAndBackwardEventID == 0){#ifdef W32GUI_DEBUG					  //PrintfDebugWnd("IDM_FOREWARD: BUTTON ON\n");#endif					  PlayerForward(0,0,0,0,0);					  PlayerForwardAndBackwardEventID =						  timeSetEvent(100,300,PlayerForward,0,TIME_PERIODIC);				  }				  else if((TbNotify->hdr.code == TBN_ENDDRAG ||						   TbNotify->hdr.code == NM_CLICK ||						   TbNotify->hdr.code == NM_RCLICK) &&						  PlayerForwardAndBackwardEventID != 0)				  {#ifdef W32GUI_DEBUG					  //PrintfDebugWnd("IDM_FOREWARD: BUTTON OFF\n");#endif					  timeKillEvent(PlayerForwardAndBackwardEventID);					  PlayerForwardAndBackwardEventID = 0;				  }				  break;				default:				  break;			  }		    }			break; /* end of case IDC_TOOLBARWINDOW_MAIN */		  default:			break;		}		return FALSE;	case WM_SHOWWINDOW:	{		BOOL fShow = (BOOL)wParam;		if ( fShow ) {			if ( PrefWndShow ) {				ShowPrefWnd ();			} else {				HidePrefWnd ();			}		} else {			if ( IsVisiblePrefWnd () )				PrefWndShow = TRUE;			else				PrefWndShow = FALSE;			HidePrefWnd ();		}		break;	}		break;      default:		if (uMess == RegisterWindowMessage("TaskbarCreated")) {			ShowWindow(hMainWnd, SW_HIDE);			ShowWindow(hMainWnd, SW_SHOWNOACTIVATE);			return 0;		}		return FALSE;    }	return FALSE;}void MainCmdProc(HWND hwnd, int wId, HWND hwndCtl, UINT wNotifyCode){	 // PrintfDebugWnd("WM_COMMAND: ID%lx HWND%lx CODE%lx\n",wId,hwndCtl,wNotifyCode);    switch(wId)    {      case IDM_STOP:		  w32g_send_rc(RC_STOP, 0);		  break;      case IDM_PAUSE:		  SendDlgItemMessage(hMainWnd, IDC_TOOLBARWINDOW_MAIN,									TB_CHECKBUTTON, IDM_PAUSE,									(LPARAM)MAKELONG(!play_pause_flag, 0));		  w32g_send_rc(RC_TOGGLE_PAUSE, 0);		  break;      case IDM_PREV:		  w32g_send_rc(RC_REALLY_PREVIOUS, 0);		  break;      case IDM_BACKWARD:		  /* Do nothing here. See WM_NOTIFY in MainProc() */		  break;      case IDM_PLAY:		  if(play_pause_flag)		  {				SendDlgItemMessage(hMainWnd, IDC_TOOLBARWINDOW_MAIN,										 TB_CHECKBUTTON, IDM_PAUSE,										 (LPARAM)MAKELONG(FALSE, 0));				w32g_send_rc(RC_TOGGLE_PAUSE, 0);		  }		  if(!w32g_play_active)				w32g_send_rc(RC_LOAD_FILE, 0);		  break;      case IDM_FOREWARD:		  /* Do nothing here. See WM_NOTIFY in MainProc() */		  break;      case IDM_NEXT:		  w32g_send_rc(RC_NEXT, 0);		  break;      case IDM_CONSOLE:      case IDM_MWCONSOLE:		  ToggleSubWindow(hConsoleWnd);		  break;      case IDM_TRACER:      case IDM_MWTRACER:		  ToggleSubWindow(hTracerWnd);//		  MainWndUpdateTracerButton();//		  MessageBox(hwnd, "Not Supported.","Warning!",MB_OK);		  break;      case IDM_LIST:      case IDM_MWPLAYLIST:		  ToggleSubWindow(hListWnd);		  if(IsWindowVisible(hListWnd))			w32g_send_rc(RC_EXT_UPDATE_PLAYLIST, 0);		  break;      case IDM_DOC:      case IDM_MWDOCUMENT:		  ToggleSubWindow(hDocWnd);//		  if(IsWindowVisible(hDocWnd))//			  w32g_send_rc(RC_EXT_DOC, 0);		  break;      case IDM_WRD:      case IDM_MWWRDTRACER:		  ToggleSubWindow(hWrdWnd);//		  MainWndUpdateWrdButton();//		  MessageBox(hwnd, "Not Supported.","Warning!",MB_OK);		  break;      case IDM_SOUNDSPEC:      case IDM_MWSOUNDSPEC:		  MainWndUpdateSoundSpecButton();		  MessageBox(hwnd, "Not Supported.","Warning!",MB_OK);		  break;      case IDOK:		  break;      case IDCANCEL:		  OnQuit();		  break;      case IDM_MFOPENFILE:		  DlgMidiFileOpen(hwnd);		  break;      case IDM_MFOPENDIR:		  DlgDirOpen(hwnd);		  break;      case IDM_MFLOADPLAYLIST:		  DlgPlaylistOpen(hwnd);		  break;      case IDM_MFSAVEPLAYLISTAS:		  DlgPlaylistSave(hwnd);		  break;      case IDM_MFEXIT:		  OnQuit();		  break;      case IDM_SETTING:		  PrefWndCreate(hMainWnd);		  break;      case IDM_MCSAVEINIFILE:		  VOLATILE_TOUCH(PrefWndDoing);		  if(PrefWndDoing){				MessageBox(hMainWnd, "Can't Save Ini file while preference dialog.",							  "Warning", MB_OK);				break;		  }		  SaveIniFile(sp_current, st_current);		  break;      case IDM_MCLOADINIFILE:		 if(!w32g_has_ini_file) {		     MessageBox(hMainWnd, "Can't load Ini file.",				"Warning", MB_OK);		     break;		 }		  VOLATILE_TOUCH(PrefWndDoing);		  if(PrefWndDoing){				MessageBox(hMainWnd, "Can't load Ini file while preference dialog.",							  "Warning", MB_OK);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -