teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

4

文章を修正

2021/09/10 13:14

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -40,6 +40,7 @@
40
40
  mousemask(ALL_MOUSE_EVENTS | REPORT_MOUSE_POSITION,NULL); // マウスイベントを取得
41
41
  MEVENT event;
42
42
 
43
+
43
44
  while (true)
44
45
  {
45
46
  erase(); //画面削除
@@ -48,9 +49,9 @@
48
49
  refresh(); //画面再表示
49
50
 
50
51
  key = 0;
52
+
51
53
  key = getch();
52
54
 
53
-
54
55
  switch(key)
55
56
  {
56
57
  case KEY_UP:
@@ -65,42 +66,45 @@
65
66
  }
66
67
  break;
67
68
 
68
- case KEY_LEFT:
69
+ case KEY_LEFT:
69
70
  {
70
71
  x--;
72
+ }
73
+ break;
74
+
75
+ case KEY_RIGHT:
71
76
  {
72
77
  x++;
73
78
  }
74
79
  break;
80
+
75
81
 
76
82
  case 'q':
77
83
  {
78
- std::cout<<"a"<<std::endl;
84
+ // std::cout<<"a"<<std::endl;
79
85
  exit = true;
80
86
  break;
81
87
 
82
88
  }
83
- break;
89
+ break;
90
+ }
84
91
 
92
+ if(getmouse(&event) == OK)
93
+ {
85
- case KEY_MOUSE:
94
+ if(event.bstate & REPORT_MOUSE_POSITION)
86
95
  {
96
+ file<<"mouse position: "<< event.x<<" , " << event.y<<std::endl;
97
+ }
98
+ }
87
99
 
88
- }
89
- break;
90
100
 
91
- }
101
+
92
102
 
93
-
94
103
  //マウス座標
95
- if( key == KEY_MOUSE)
104
+ if(key == KEY_MOUSE)
96
105
  {
97
- if(getmouse(&event) == OK)
106
+
98
- {
107
+
99
- if(event.bstate & REPORT_MOUSE_POSITION)
100
- {
101
- file<<"mouse position: "<< event.x<<" , " << event.y<<std::endl;
102
- }
103
- }
104
108
  }
105
109
 
106
110
  //終了処理
@@ -112,8 +116,6 @@
112
116
  }
113
117
  }
114
118
 
115
-
116
-
117
119
  endwin(); //終了 
118
120
  return 0;
119
121
  }

3

文章をタイトルを修正しました。

2021/09/10 13:14

投稿

退会済みユーザー
title CHANGED
@@ -1,1 +1,1 @@
1
- ncursesライブラリ マウス座標を実装したい。
1
+ ncursesライブラリ マウス座標常時取得したい。
body CHANGED
@@ -1,9 +1,11 @@
1
1
  ###やりたいこと
2
- マウス座標を取得してマウスによる画面操作を実装い。
2
+ マウス座標をクリックしていない時でも取得してしいです
3
3
 
4
4
  ###質問内容
5
- ncursesライブラを使ってマウスの座標を得る方法が知りたい下記参考サイトより実装したのですがswitch文が分岐してくれない理由がわかりません。テキトファイルに出力してそこにコドが移行しているか検証ましが移行してません、またファイル出力は十字キー試しました正常に出力されていのでファイルの書き込みには問題はありません。
5
+ 提示コードの//マウス コメント部ですがこれはマウスがクックしいる間マウスの座標をるのですがマウのキを押していないときも常時マウスの座標取得したいその場合どうやっ取得すればのでしょうか?
6
6
 
7
+
8
+
7
9
  ###参考サイト
8
10
  参考サイト: [https://ja.osdn.net/projects/drdeamon64/wiki/12.%E3%83%9E%E3%82%A6%E3%82%B9%E6%93%8D%E4%BD%9C](https://ja.osdn.net/projects/drdeamon64/wiki/12.%E3%83%9E%E3%82%A6%E3%82%B9%E6%93%8D%E4%BD%9C)
9
11
 
@@ -26,7 +28,7 @@
26
28
  int key;
27
29
  std::string str;
28
30
  bool exit = false;
29
- std::ofstream file("text.txt");
31
+ std::ofstream file("log.txt");
30
32
 
31
33
 
32
34
  noecho(); //入力した文字を非表示
@@ -35,7 +37,7 @@
35
37
 
36
38
 
37
39
 
38
- mousemask(REPORT_MOUSE_POSITION,NULL); // マウスイベントを取得
40
+ mousemask(ALL_MOUSE_EVENTS | REPORT_MOUSE_POSITION,NULL); // マウスイベントを取得
39
41
  MEVENT event;
40
42
 
41
43
  while (true)
@@ -66,14 +68,6 @@
66
68
  case KEY_LEFT:
67
69
  {
68
70
  x--;
69
- //std::cout<<"あああ "<<str;
70
- //file<< "あああ" <<std::endl;
71
-
72
-
73
- }
74
- break;
75
-
76
- case KEY_RIGHT:
77
71
  {
78
72
  x++;
79
73
  }
@@ -90,22 +84,26 @@
90
84
 
91
85
  case KEY_MOUSE:
92
86
  {
93
- if(getmouse(&event) == OK)
94
- {
95
- if(event.bstate & REPORT_MOUSE_POSITION)
96
- {
97
- //std::cout<<event.y<<" "<<event.x;
98
- //str = std::to_string(event.x);
99
- //std::cout<<str<<std::endl;
100
87
 
101
- file<<"あああ"<< event.x<<std::endl;
102
- }
103
- }
104
88
  }
105
89
  break;
106
90
 
107
91
  }
108
92
 
93
+
94
+ //マウス座標
95
+ if( key == KEY_MOUSE)
96
+ {
97
+ if(getmouse(&event) == OK)
98
+ {
99
+ if(event.bstate & REPORT_MOUSE_POSITION)
100
+ {
101
+ file<<"mouse position: "<< event.x<<" , " << event.y<<std::endl;
102
+ }
103
+ }
104
+ }
105
+
106
+ //終了処理
109
107
  if(exit == true)
110
108
  {
111
109
  file.close();
@@ -119,5 +117,4 @@
119
117
  endwin(); //終了 
120
118
  return 0;
121
119
  }
122
-
123
120
  ```

2

文章を修正しました。

2021/09/10 12:53

投稿

退会済みユーザー
title CHANGED
@@ -1,1 +1,1 @@
1
- ncursesライブラリ マウス操作を実装したい。
1
+ ncursesライブラリ マウス座標を実装したい。
body CHANGED
File without changes

1

文章を修正しました。

2021/09/10 12:02

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -2,7 +2,7 @@
2
2
  マウス座標を取得してマウスによる画面操作を実装したい。
3
3
 
4
4
  ###質問内容
5
- ncursesライブらいを使ってマウスの座標を得る方法が知りたい下記の参考サイトより実装したのですがswitch文が分岐してくれない理由がわかりません。テキストファイルに出力してそこにコードが移行しているかを検証しましたが移行していません、またファイル出力は十字キーで試しましたが正常に出力されているのでファイルの書き込みには問題はありません。
5
+ ncursesライブラリを使ってマウスの座標を得る方法が知りたい下記の参考サイトより実装したのですがswitch文が分岐してくれない理由がわかりません。テキストファイルに出力してそこにコードが移行しているかを検証しましたが移行していません、またファイル出力は十字キーで試しましたが正常に出力されているのでファイルの書き込みには問題はありません。
6
6
 
7
7
  ###参考サイト
8
8
  参考サイト: [https://ja.osdn.net/projects/drdeamon64/wiki/12.%E3%83%9E%E3%82%A6%E3%82%B9%E6%93%8D%E4%BD%9C](https://ja.osdn.net/projects/drdeamon64/wiki/12.%E3%83%9E%E3%82%A6%E3%82%B9%E6%93%8D%E4%BD%9C)