Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.10.2009, 16:29   #1
dampirik
Форумчанин
 
Регистрация: 02.07.2009
Сообщений: 722
По умолчанию Движение

Во общем возник вопросик:
Есть картинка которую скажем при нажатии левой кнопки мышки на нее и зажатой кнопки мышки будет менять свои координаты в след за мышкой...
При отпускании мышки будет фиксироваться
Нужно будет взять координаты данного объекта после его "приземления"
Пишу на Visuale C++/CLR. Но можно любой пример на визуале чтобы вообще понять что и как...)
dampirik вне форума Ответить с цитированием
Старый 08.10.2009, 17:04   #2
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

в 2-х словах
Код:
bool isMoving;

OnMouseDown(...) {
    isMoving = true;
}

OnMouseUp(...) {
    isMoving = false;
}

OnMouseMove(x, y) {
    picture.setpos(x, y)
)
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 08.10.2009, 17:12   #3
dampirik
Форумчанин
 
Регистрация: 02.07.2009
Сообщений: 722
По умолчанию

Moving как я понимаю перемещение...
Код:
OnMouseDown(...) {  //нажатие на кнопку мышки
    isMoving = true;
}

OnMouseUp(...) {  // отпускаем мышку
    isMoving = false;
}

OnMouseMove(x, y) {  координаты перемещения?
    picture.setpos(x, y)
)
я правильно понял? ушел "дценствовать"
dampirik вне форума Ответить с цитированием
Старый 08.10.2009, 17:25   #4
dampirik
Форумчанин
 
Регистрация: 02.07.2009
Сообщений: 722
По умолчанию

Однако не понятно как снять показания мышки? ее координаты относительно формы
dampirik вне форума Ответить с цитированием
Старый 08.10.2009, 17:31   #5
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

в методе onmousemove приходят координаты мыши
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 08.10.2009, 17:59   #6
dampirik
Форумчанин
 
Регистрация: 02.07.2009
Сообщений: 722
Печаль

Что-то все равно не понимаю..
Вот смотрите: чуть поменяю задачу чтобы было проще мне для понимания.
есть событие:
Код:
private: System::Void Form1_MouseMove(System::Object^ sender, System::Windows::Forms::MouseEventArgs^ e){
this->textBox1->AppendText("x = "+x+" y = "+y+"\n"); // те при изменении положении курсора внутри формы будет отдавать координаты...
}
Вопрос где брать х,у ??
dampirik вне форума Ответить с цитированием
Старый 08.10.2009, 18:16   #7
dampirik
Форумчанин
 
Регистрация: 02.07.2009
Сообщений: 722
Лампочка

все понял)))
Код:
private: System::Void Form1_MouseMove(System::Object^ sender, System::Windows::Forms::MouseEventArgs^ e){
this->textBox1->AppendText("x = "+e->X+" y = "+e->Y+"\n"); 
}
dampirik вне форума Ответить с цитированием
Старый 08.10.2009, 18:16   #8
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

2dampirik
Цитата:
private: System::Void Form1_MouseMove(System::Object^ sender, System::Windows::Forms::MouseEventA rgs^ e){
this->textBox1->AppendText("x = "+x+" y = "+y+"\n"); // те при изменении положении курсора внутри формы будет отдавать координаты...
}
они приходят в объекте 'e'
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 09.10.2009, 00:49   #9
dampirik
Форумчанин
 
Регистрация: 02.07.2009
Сообщений: 722
Вопрос

Однако проблема((
Код:
private: System::Void pictureBox1_MouseDown(System::Object^  sender, System::Windows::Forms::MouseEventArgs^  e) {
				String ^ss;				
				 
			 isMoving=1;
			 ss=isMoving.ToString();
			 this->textBox1->AppendText(ss+"\n");
			 }
	private: System::Void pictureBox1_MouseUp(System::Object^  sender, System::Windows::Forms::MouseEventArgs^  e) {
			 
			 isMoving=0;
			 String ^ss;
			  ss=isMoving.ToString();
			 this->textBox1->AppendText(ss+"\n");
			 }
	private: System::Void Form1_MouseMove(System::Object^  sender, System::Windows::Forms::MouseEventArgs^  e) {
				if (isMoving==1)
					this->pictureBox1->Location=System::Drawing::Point(e->X,e->Y);
			 }
1) не происходит перемещения объекта при нажатии на него мышкой и движении...(однако 1 0 корректно отдаются...)
2) при перемещении объекта (если курсор мышки заходит в область других объектов(кнопок пикчер буксов и тд)) координаты не отдаются...я понимаю почему не знаю только как исправить
dampirik вне форума Ответить с цитированием
Старый 09.10.2009, 20:06   #10
Vitek-pm
Пользователь
 
Регистрация: 17.02.2009
Сообщений: 56
По умолчанию

Попробуй так:

Код:
	private: System::Void Form1_Load(System::Object^  sender, System::EventArgs^  e) {
			flag_x = -1;
			 }
	private: System::Void pictureBox1_MouseDown(System::Object^  sender, System::Windows::Forms::MouseEventArgs^  e) {
				 flag_x=this->MousePosition.X - this->Left - pictureBox1->Left;
				 flag_y=this->MousePosition.Y - this->Top - pictureBox1->Top;
			 }
	private: System::Void pictureBox1_MouseUp(System::Object^  sender, System::Windows::Forms::MouseEventArgs^  e) {
				 flag_x=-1;
			 }
	private: System::Void pictureBox1_MouseMove(System::Object^  sender, System::Windows::Forms::MouseEventArgs^  e) {
			if(flag_x!=-1)
			{
				pictureBox1->Left=this->MousePosition.X - this->Left - flag_x;
				pictureBox1->Top=this->MousePosition.Y - this->Top - flag_y;
			}
			 }
Vitek-pm вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Движение формы BaRSyk174 Общие вопросы Delphi 2 17.09.2009 18:52
движение alex(21) Паскаль, Turbo Pascal, PascalABC.NET 9 20.08.2009 00:08
движение TBitMap Juffin Мультимедиа в Delphi 1 14.04.2009 21:34
броновское движение radikayupov1710 Общие вопросы C/C++ 1 23.01.2009 01:55
Движение Mickle Общие вопросы Delphi 5 19.04.2007 23:24