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

📄 dlgsetting2.h

📁 caro program is written by VC++ and AI
💻 H
字号:
//*************************************************************************//
//
// Dialog Setting Proc
// DlgSetting.h
//
//*************************************************************************//

////////////////////////////////////////////////////////////////////////////
// Setting Dialog Init Message
void Setting_Init(HWND hDlg)
{
TCHAR szBuffer[50];

	/***********************************************************/
	// Game Setting
	// Enable Warning CheckBox
	SendMessage(GetDlgItem(hDlg,IDC_CHK_WARNING),BM_SETCHECK,setting.fWarning,0);
	//Sound CheckBox
	SendMessage(GetDlgItem(hDlg,IDC_CHK_SOUND),BM_SETCHECK,setting.fSound,0);
	//Time CheckBox & EditBox
	SendMessage(GetDlgItem(hDlg,IDC_CHK_TIME),BM_SETCHECK,setting.fTime,0);
	EnableWindow(GetDlgItem(hDlg,IDC_EDT_TIME),setting.fTime );
	wsprintf(szBuffer,"%d",setting.iTime );
	SetWindowText(GetDlgItem(hDlg,IDC_EDT_TIME),szBuffer);
	SendMessage(GetDlgItem(hDlg,IDC_EDT_TIME),EM_LIMITTEXT,3,0);
	// Law ComboBox
	SendMessage(GetDlgItem(hDlg,IDC_CMB_LAW),CB_INSERTSTRING,0,(LPARAM)"Gomoku Law");
	SendMessage(GetDlgItem(hDlg,IDC_CMB_LAW),CB_INSERTSTRING,1,(LPARAM)"Caro Chess Law");
	SendMessage(GetDlgItem(hDlg,IDC_CMB_LAW),CB_SETCURSEL,setting.iLaw,0);
	// Blocks EditBox
	wsprintf(szBuffer,"%d",setting.iBlock );
	SetWindowText(GetDlgItem(hDlg,IDC_EDT_BLOCKS),szBuffer);
	SendMessage(GetDlgItem(hDlg,IDC_EDT_BLOCKS),EM_LIMITTEXT,3,0);
	// Sound file EditBox
	SetWindowText(GetDlgItem(hDlg,IDC_EDT_SOUND),setting.szSoundFile );
	// Opacity SliderBar
	//..................
	SendMessage(GetDlgItem(hDlg,IDC_SLD_OPACITY),SBM_SETRANGE,0,10);
	SendMessage(GetDlgItem(hDlg,IDC_SLD_OPACITY),SBM_SETPOS,5,TRUE);

	// Computer Play : Blink / Move Radio Button -- Speed check
	CheckRadioButton(hDlg,IDC_RD_BLINK,IDC_RD_MOVE,setting.iCPlay+IDC_RD_BLINK);
	// Skin ( ComboBox )
	SendMessage(GetDlgItem(hDlg,IDC_CMB_SKIN),CB_INSERTSTRING,0,(LPARAM)"Dark");
	SendMessage(GetDlgItem(hDlg,IDC_CMB_SKIN),CB_INSERTSTRING,1,(LPARAM)"Aqua");
	SendMessage(GetDlgItem(hDlg,IDC_CMB_SKIN),CB_INSERTSTRING,2,(LPARAM)"Violet");
	SendMessage(GetDlgItem(hDlg,IDC_CMB_SKIN),CB_SETCURSEL,setting.iSkin,0);


}

////////////////////////////////////////////////////////////////////////////
// Setting Dialog Draw Item Message
void Setting_DrawItem(LPDRAWITEMSTRUCT pdis)
{
RECT rect;

	GetClientRect(pdis->hwndItem,&rect);
	

	switch((char)pdis->CtlID)
	{
	case IDC_BTN_BLOCKCOLOR:
		MyRectangle(pdis->hDC,rect.left,rect.top,rect.right,rect.bottom,RGB(255,255,255),skin[setting.iSkin].crBlock);
		break;
	case IDC_BTN_BORDERCOLOR:
		MyRectangle(pdis->hDC,rect.left,rect.top,rect.right,rect.bottom,RGB(255,255,255),skin[setting.iSkin].crBlockBorder);
		break;
	case IDC_BTN_MOUSECOLOR:
		MyRectangle(pdis->hDC,rect.left,rect.top,rect.right,rect.bottom,RGB(255,255,255),skin[setting.iSkin].crMouse);
		break;
	}
}

////////////////////////////////////////////////////////////////////////////
// Setting Dialog Command Message
void Setting_Command(HWND hDlg,WPARAM wParam)
{
TCHAR szBuffer[50];
OPENFILENAME ofn;
CHOOSECOLOR cdlg;
TCHAR szFilter[] = TEXT ("MIDI Files (*.mid)\0*.mid\0")  \
                               TEXT ("All Files (*.*)\0*.*\0\0") ;

	switch(LOWORD(wParam))
		{
		// Enable Warning
		case IDC_CHK_WARNING:
			setting.fWarning = !setting.fWarning ;
			SaveSetting();
			break;

		// Sound
		case IDC_CHK_SOUND:
			setting.fSound  = !setting.fSound ;
			EnableWindow(GetDlgItem(hDlg,IDC_EDT_SOUND), setting.fSound);
			EnableWindow(GetDlgItem(hDlg,IDC_BTN_SOUND), setting.fSound);
			SaveSetting();
			break;
		
		// Time (Checkbox)
		case IDC_CHK_TIME:
			setting.fTime  = !setting.fTime ;
			EnableWindow(GetDlgItem(hDlg,IDC_EDT_TIME),setting.fTime );
			SaveSetting();
			break;

		// Time (Editbox)
		case IDC_EDT_TIME:
			if(HIWORD(wParam)==EN_KILLFOCUS)
			{
				GetWindowText(GetDlgItem(hDlg,IDC_EDT_TIME),szBuffer,4);
				setting.iTime = atoi(szBuffer);
				SaveSetting();
			}
			break;

		// Law ( ComboBox )
		case IDC_CMB_LAW:
			if(HIWORD(wParam)==CBN_SELCHANGE)
			{
				setting.iLaw = (char)SendMessage(GetDlgItem(hDlg,IDC_CMB_LAW),CB_GETCURSEL,0,0);
				SaveSetting();
			}
			break;
	
		// Block
		case IDC_EDT_BLOCKS:
			if(HIWORD(wParam)==EN_KILLFOCUS)
			{
				GetWindowText(GetDlgItem(hDlg,IDC_EDT_BLOCKS),szBuffer,4);
				setting.iBlock = atoi(szBuffer);
				SaveSetting();
			}
			break;

		// Sound file ( Editbox )
		case IDC_EDT_SOUND:
			if(HIWORD(wParam)==EN_KILLFOCUS)
			{
				GetWindowText(GetDlgItem(hDlg,IDC_EDT_SOUND),setting.szSoundFile ,MAX_PATH);
				SaveSetting();
			}
			break;

		// Sound file ( Browse )
		case IDC_BTN_SOUND:
			ofn=OpenDlgInit(WndMain.hwnd , szFilter, "mid", setting.szSoundFile );
			if(GetOpenFileName(&ofn))
			{
				SetWindowText(GetDlgItem(hDlg,IDC_EDT_SOUND),setting.szSoundFile );
				SaveSetting();
			}
			break;

		// Computer Play ( RadioButton )
		case IDC_RD_BLINK:
		case IDC_RD_MOVE:
			setting.iCPlay =LOWORD(wParam)-IDC_RD_BLINK;
			SaveSetting();
			break;

		case IDC_CMB_SKIN:
			if(HIWORD(wParam)==CBN_SELCHANGE)
			{
				setting.iSkin = (char)SendMessage(GetDlgItem(hDlg,IDC_CMB_SKIN),CB_GETCURSEL,0,0);
				InvalidateRect(GetDlgItem(hDlg,IDC_BTN_BLOCKCOLOR),NULL,FALSE);
				SaveSetting();
			}
		break;

		case IDC_BTN_BLOCKCOLOR:
			cdlg = ColorDlgInit(WndMain.hwnd, skin[setting.iSkin].crBlock );
			ChooseColor(&cdlg);
			skin[setting.iSkin].crBlock=cdlg.rgbResult ;
			InvalidateRect(GetDlgItem(hDlg,IDC_BTN_BLOCKCOLOR),NULL,FALSE);
			break;
	}
}

⌨️ 快捷键说明

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