Форум программистов, компьютерный форум CyberForum.ru

Указатель this - C++

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 35, средняя оценка - 4.94
sektor2009
3 / 3 / 0
Регистрация: 15.03.2009
Сообщений: 339
18.04.2011, 08:27     Указатель this #1
как в windows Forms //
горячую клавишу?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.04.2011, 08:27     Указатель this
Посмотрите здесь:

указатель на указатель или присваивание объекта C++
Указатель или ссылка на указатель. В чем разница? C++
C++ Преобразовать указатель одного типа в указатель другого.
Передать в неуправляемую функцию указатель на указатель C++
Приведение любого двумерного массива к типу указатель на указатель C++
Реализация двоичных деревьев поиска: Зачем в параметрах функции используется указатель на указатель C++
Если в класс нужно передать указатель на указатель на массив строк неизвестной длинны? C++ Builder
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
19.04.2011, 08:02     Указатель this #2
При чём здесь формы, тем более кнопки? this - это неявный указатель в методах и операторах-членах.
C++
1
2
3
4
5
6
7
8
9
class A
{
 public:
 int a;
 A ()
 {
  a=0;
 }
};
эквивалентно
C++
1
2
3
4
5
6
7
8
9
class A
{
 public:
 int a;
 A ()
 {
  this->a=0;
 }
};
, причём, как не пиши, а получится всё равно только
C++
1
2
3
4
5
6
7
8
9
class A
{
 public:
 int a;
 A ()
 {
  this->a=0;
 }
};
. Нужно для обращения к члену, перекрытому параметром:
C++
1
2
3
4
5
6
7
8
9
class A
{
 public:
 int a;
 A (int a)
 {
  this->a=a; // this->a - член, a - параметр.
 }
};
и для возврата ссылки на this:
C++
1
2
3
4
5
6
7
8
9
10
11
class A
{
 ...
 public:
 ...
  A operator = (A& x)
  {
   ...
   return *this;
  }
}
.
sektor2009
3 / 3 / 0
Регистрация: 15.03.2009
Сообщений: 339
19.04.2011, 08:05  [ТС]     Указатель this #3
Цитата Сообщение от taras atavin Посмотреть сообщение
При чём здесь формы, тем более кнопки? this - это неявный указатель в методах и операторах-членах.
C++
1
2
3
4
5
6
7
8
9
class A
{
 public:
 int a;
 A ()
 {
  a=0;
 }
};
эквивалентно
C++
1
2
3
4
5
6
7
8
9
class A
{
 public:
 int a;
 A ()
 {
  this->a=0;
 }
};
, причём, как не пиши, а получится всё равно только
C++
1
2
3
4
5
6
7
8
9
class A
{
 public:
 int a;
 A ()
 {
  this->a=0;
 }
};
. Нужно для обращения к члену, перекрытому параметром:
C++
1
2
3
4
5
6
7
8
9
class A
{
 public:
 int a;
 A (int a)
 {
  this->a=a; // this->a - член, a - параметр.
 }
};
и для возврата ссылки на this:
C++
1
2
3
4
5
6
7
8
9
10
11
class A
{
 ...
 public:
 ...
  A operator = (A& x)
  {
   ...
   return *this;
  }
}
.

например нажал на "*" и вызывалась функция кнопки умножения
как так сделать?
Windows Forms c++
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
19.04.2011, 08:22     Указатель this #4
Цитата Сообщение от sektor2009 Посмотреть сообщение
например нажал на "*" и вызывалась функция кнопки умножения
И какое это имеет отношение к указателю this?
sektor2009
3 / 3 / 0
Регистрация: 15.03.2009
Сообщений: 339
19.04.2011, 08:23  [ТС]     Указатель this #5
Цитата Сообщение от taras atavin Посмотреть сообщение
И какое это имеет отношение к указателю this?
В нете читал что через него делается
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
19.04.2011, 08:26     Указатель this #6
Цитата Сообщение от sektor2009 Посмотреть сообщение
В нете читал что через него делается
А сломанный БЕЛАЗ ремонтируется методом поездки на нём в Москву? Для того, чтоб подняться на лифте на 12-й этаж, надо отвинтить колесо у такси?
sektor2009
3 / 3 / 0
Регистрация: 15.03.2009
Сообщений: 339
19.04.2011, 08:36  [ТС]     Указатель this #7
Цитата Сообщение от taras atavin Посмотреть сообщение
А сломанный БЕЛАЗ ремонтируется методом поездки на нём в Москву? Для того, чтоб подняться на лифте на 12-й этаж, надо отвинтить колесо у такси?
это на делфи
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (ssCtrl in Shift) andin ['A', 'a']) then
ShowMessage('Ctrl-A');
end;
как на с++ ?

Добавлено через 1 минуту
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Для примера, перехватим комбинацию ALT + CONTROL + ENTER.
 
Сначала регистрируем горячую клавишу:
 
bool RHKret = RegisterHotKey(Form1->Handle,         // Handle окна, которому отправлять сообщения WM_HOTKEY
                             0x00F,                 // УСЛОВНЫЙ идентификатор горячего ключа
                             MOD_ALT + MOD_CONTROL, // модификаторы
                             VK_RETURN              // код клавиши
                             );
if (RHKret) // если всё о'кей
        {
        ShowMessage("Hot Key Registred");
        }
 
 
Затем размещаем на Form1 TApplicationEvents и в OnMessage пишем:
 
if (Msg.message == WM_HOTKEY) // сообщение наше
        {
        if (Msg.wParam == 0x00F) // идентификатор наш
                {
                ShowMessage("www.sources.ru"); // громко кричим "уря"
                }
        }
 
 
Когда горячая клавиша больше не нужна, отключаем ее:
 
UnregisterHotKey(Form1->Handle, // Handle окна
                 0x00F          // наш идентификатор горячего ключа
                 );

C++ Builder это!

Добавлено через 2 минуты
Цитата Сообщение от taras atavin Посмотреть сообщение
И какое это имеет отношение к указателю this?
вот
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public Form1()
        {
            InitializeComponent();
            this.KeyPreview = true;
        }
 
        protected override void OnKeyDown(KeyEventArgs e)
        {
            base.OnKeyDown(e);
            if (e.KeyCode == Keys.F1) 
            {
                MessageBox.Show("Тест");
                e.Handled = true;
            }
        }
solar_wind
 Аватар для solar_wind
741 / 732 / 39
Регистрация: 06.07.2009
Сообщений: 2,940
Завершенные тесты: 1
19.04.2011, 08:42     Указатель this #8
sektor2009,
this.KeyPreview = true; из этого примера можно убрать наверное даже, и суть от этого не поменяется.
sektor2009
3 / 3 / 0
Регистрация: 15.03.2009
Сообщений: 339
19.04.2011, 08:43  [ТС]     Указатель this #9
Цитата Сообщение от vitaly1981 Посмотреть сообщение
sektor2009,
this.KeyPreview = true; из этого примера можно убрать наверное даже, и суть от этого не поменяется.
это же конструктор
solar_wind
 Аватар для solar_wind
741 / 732 / 39
Регистрация: 06.07.2009
Сообщений: 2,940
Завершенные тесты: 1
19.04.2011, 08:47     Указатель this #10
Я так вижу, что ты саму задачу свою толком не понимаешь, выставляй описание самой задачи, тогда кто нить да поможет, а так это все пустая болтовня.

Добавлено через 1 минуту
sektor2009, И что с того что конструктор? this к перехвату нажатия клавиши вообще не имеет тут отношения.
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
19.04.2011, 08:48     Указатель this #11
Цитата Сообщение от sektor2009 Посмотреть сообщение
вот
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public Form1()
        {
            InitializeComponent();
            this.KeyPreview = true;
        }
 
        protected override void OnKeyDown(KeyEventArgs e)
        {
            base.OnKeyDown(e);
            if (e.KeyCode == Keys.F1) 
            {
                MessageBox.Show("Тест");
                e.Handled = true;
            }
        }
Здесь он не нужен. И потом, решётка обсуждается в другом разделе.
sektor2009
3 / 3 / 0
Регистрация: 15.03.2009
Сообщений: 339
19.04.2011, 08:49  [ТС]     Указатель this #12
Цитата Сообщение от vitaly1981 Посмотреть сообщение
Я так вижу, что ты саму задачу свою толком не понимаешь, выставляй описание самой задачи, тогда кто нить да поможет, а так это все пустая болтовня.

Добавлено через 1 минуту
sektor2009, И что с того что конструктор? this к перехвату нажатия клавиши вообще не имеет тут отношения.
У меня кнопка - Button, выполняет такое то действие, не подскажите, как привязать выполнение действия этой кнопки на нажатие кнопки Enter?
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
19.04.2011, 08:52     Указатель this #13
Цитата Сообщение от sektor2009 Посмотреть сообщение
У меня кнопка - Button, выполняет такое то действие, не подскажите, как привязать выполнение действия этой кнопки на нажатие кнопки Enter?
Обработкой кнопок клавы в событии OnKeyDown. this применяется для других целей.
sektor2009
3 / 3 / 0
Регистрация: 15.03.2009
Сообщений: 339
19.04.2011, 08:53  [ТС]     Указатель this #14
Цитата Сообщение от taras atavin Посмотреть сообщение
Обработкой кнопок клавы в событии OnKeyDown. this применяется для других целей.
меня интерисует как все это сделать
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
19.04.2011, 08:54     Указатель this #15
Кстати, перехваты и горячие кнопки вообще не имеют никакого отношения к чистым сям. Это системно-зависимые аспекты и тему надо рамещать соотвественно в сях для винды, или в сях для линя. Но ни как не в общем разделе. Или хотябы явно назови ось.
solar_wind
 Аватар для solar_wind
741 / 732 / 39
Регистрация: 06.07.2009
Сообщений: 2,940
Завершенные тесты: 1
19.04.2011, 08:55     Указатель this #16
sektor2009, Какую среду разработки используешь?
Если бы четко написал, и создал тему с адекватным названием, давно бы уже получил ответ!
sektor2009
3 / 3 / 0
Регистрация: 15.03.2009
Сообщений: 339
19.04.2011, 08:57  [ТС]     Указатель this #17
Цитата Сообщение от vitaly1981 Посмотреть сообщение
sektor2009, Какую среду разработки используешь?
Если бы четко написал, и создал тему с адекватным названием, давно бы уже получил ответ!
я же писал
vC++
WIndows Forms c++
solar_wind
 Аватар для solar_wind
741 / 732 / 39
Регистрация: 06.07.2009
Сообщений: 2,940
Завершенные тесты: 1
19.04.2011, 09:00     Указатель this #18
sektor2009, Тогда создай нормальную тему в соответствующем разделе!
Насколько помню там обработчики создаются чуть ли не по двойному нажатию на кнопку в реджиме построения формы, или как то очень просто. А потом помещаешь в обработчик что тебе надо.
sektor2009
3 / 3 / 0
Регистрация: 15.03.2009
Сообщений: 339
19.04.2011, 09:01  [ТС]     Указатель this #19
да это я знаю...а вот все как это записывается
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.04.2011, 09:02     Указатель this
Еще ссылки по теме:

Расскажите, как здесь работает указатель на указатель? C++
Почему указатель на указатель объявляется как float **A; C++
C++ Указатель на указатель и Нарушение прав доступа
Зачем нужен указатель на указатель при работе с однонаправленным списком? C++
C++ Указатель на указатель, функции для создания новых массивов?

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
19.04.2011, 09:02     Указатель this #20
Это обработчики шелчка крысой.
Yandex
Объявления
19.04.2011, 09:02     Указатель this
Ответ Создать тему
Опции темы

Текущее время: 02:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru