###やりたいこと
マウス座標をクリックしていない時でも取得してほしいです。
###質問内容
提示コードの//マウス コメント部ですがこれはマウスがクリックしている間マウスの座標を取得するのですがマウスのキーを押していないときも常時マウスの座標を取得したいのですがその場合どうやって取得すればいいのでしょうか?
###参考サイト
参考サイト: https://ja.osdn.net/projects/drdeamon64/wiki/12.%E3%83%9E%E3%82%A6%E3%82%B9%E6%93%8D%E4%BD%9C
cpp
1#include <string.h> 2#include <iostream> 3#include <fstream> 4#include "../lib/ncurses/include/curses.h" 5 6int main() 7{ 8 initscr(); //初期化 9 10 int x = 0, y = 0, w, h; 11 //char str[20]="Hello World"; 12 int key; 13 std::string str; 14 bool exit = false; 15 std::ofstream file("log.txt"); 16 17 18 noecho(); //入力した文字を非表示 19 cbreak(); //Enterキー不要のキー入力 20 keypad(stdscr,TRUE); // 特殊キーを有効化 21 22 23 24 mousemask(ALL_MOUSE_EVENTS | REPORT_MOUSE_POSITION,NULL); // マウスイベントを取得 25 MEVENT event; 26 27 28 while (true) 29 { 30 erase(); //画面削除 31 move(y, x); //移動 32 addstr(str.c_str()); //文字表示 33 refresh(); //画面再表示 34 35 key = 0; 36 37 key = getch(); 38 39 switch(key) 40 { 41 case KEY_UP: 42 { 43 y--; 44 } 45 break; 46 47 case KEY_DOWN: 48 { 49 y++; 50 } 51 break; 52 53 case KEY_LEFT: 54 { 55 x--; 56 } 57 break; 58 59 case KEY_RIGHT: 60 { 61 x++; 62 } 63 break; 64 65 66 case 'q': 67 { 68// std::cout<<"a"<<std::endl; 69 exit = true; 70 break; 71 72 } 73 break; 74 } 75 76 if(getmouse(&event) == OK) 77 { 78 if(event.bstate & REPORT_MOUSE_POSITION) 79 { 80 file<<"mouse position: "<< event.x<<" , " << event.y<<std::endl; 81 } 82 } 83 84 85 86 87 //マウス座標 88 if(key == KEY_MOUSE) 89 { 90 91 92 } 93 94 //終了処理 95 if(exit == true) 96 { 97 file.close(); 98 99 break; 100 } 101 } 102 103 endwin(); //終了 104 return 0; 105}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2021/09/11 00:44
退会済みユーザー
2021/09/12 01:05 編集