Zmiana koloru przycisku w Visual Studio 2013 c++

0

Witam,

mam taki kod:

 private: System::Void button5_Click(System::Object^  sender, System::EventArgs^  e) 
{
	System::Media::SoundPlayer^ player = gcnew System::Media::SoundPlayer("g.wav");
	player->Load();
	player->PlaySync();
	
	
}

Jak zrobić, aby podczas grania tego dzwieku klawisz zmieniał kolor na np czerwony i po zagraniu tego dzwieku zmienil kolor na normalny.
Wiem, ze jego kolor zmienie za pomocą: button5->BackColor=System::Red.

0

sam sobie odpowiedziałeś - coś ci nie działa?

0

Dziala, ale nie tak jakbym tego chciał. Chciałbym zrobić taką gierkę, w której komputer wygrywa pewna melodie na pianinie, a gracz musi ją powtórzyć i pozniej program sprawdza czy zostało zagrane dobrze. Na przyklad mam taki kod, ktory wygrywa melodie.

private: System::Void button14_Click(System::Object^  sender, System::EventArgs^  e) {
		button5_Click(sender, e);
		button3_Click(sender, e);
		button3_Click(sender, e);
		button4_Click(sender, e);
		button2_Click(sender, e);
		button2_Click(sender, e);
		button1_Click(sender, e);
		button3_Click(sender, e);
		button5_Click(sender, e);
		button5_Click(sender, e);
		button3_Click(sender, e);
		button3_Click(sender, e);
		button4_Click(sender, e);
		button2_Click(sender, e);
		button2_Click(sender, e);
		button1_Click(sender, e);
		button3_Click(sender, e);
		button1_Click(sender, e);

	} 

Wszystko działa, ale chciałbym, aby gracz mogł zobaczyc jakie klawisze pianina musi wcisnać, aby zagrac te dzwieki, bo ze sluchu to nie wystarczy.

0

Chciałbym, aby klawisze zmienialy tylko kolor w momencie grania tego dzwiek.

0
  1. zmieniasz kolor
  2. grasz
  3. przywracasz kolor
0

No wlasnie nie wiem jak, bo jak ja zrobilem, to najpierw zagrał wszystkie dzwieki i dopiero pozniej zmienil kolor wszystkich.

0

Moim ostatnim wynalazkiem jest takie cos:

private: System::Void button8_Click(System::Object^  sender, System::EventArgs^  e) {
		
		if (button8->BackColor == System::Drawing::Color::White)
		{
			
			System::Media::SoundPlayer^ player = gcnew System::Media::SoundPlayer("c2.wav");
	player->Load();
	player->PlaySync();
	button8->BackColor = System::Drawing::Color::Green;
	}
		
	if (button8->BackColor == System::Drawing::Color::Green){
		button8->BackColor = System::Drawing::Color::White;
	}
} 

Ale to sie dzieje za szybko i nie widać w ogole tego koloru zielonego, przydaloby sie opoznienie, ale nie wiem jak to zrobić. Może masz jakies inne rozwiazanie?

0

A jednak opoznienie nic tu nie dalo. Kolor przycisku niby sie zmienia, ale tego nie widać.

1 użytkowników online, w tym zalogowanych: 0, gości: 1