プロが教えるわが家の防犯対策術!

C++でShowCursorを使ってマウスポインタを非表示にしたいのですが、できません。

ShowCursor関数は戻り値がマイナスにならないと非表示にならないのは重々承知しております。

以下にコードを載せますので問題点を指摘した上でどのように訂正すれば良いかご教授ください。

#include<iostream>
#include<windows.h>
using namespace std;
int main() {
int cursor = 0;
do {
cursor = ShowCursor(FALSE);
cout << cursor << endl;
} while (cursor >= 0);
system("pause");
return 0;
}

A 回答 (2件)

コンソールウインドウは別プロセスなので、おそらくマウスカーソルを消すことはできないと思います(私が無知なだけかも知れません)。


勿論、ウインドウズアプリなら可能ですが・・・。
ただし、マウスカーソルの位置を設定することはできます(SetCursorPosを用いる)。
そこで、これを用いてマウスカーソルをコンソールウインドウ上に表示させない というのはいかがでしょう。
サンプルは以下の通りです。ただし、このサンプルは無限ループしますので、そこは、適宜、修正してください。

サンプルプログラム

#include<iostream>
#include<windows.h>
using namespace std;
int main() {
POINT point;
do {
//現在のカーソル位置を表示(特に意味はない)
GetCursorPos(&point);
cout << point.x << endl;
cout << point.y << endl;
//カーソル位置を画面外へ
SetCursorPos(1024,600); // 1024と600は画面外を示しているものとする
} while (1);

return 0;
}
    • good
    • 0

良く知らないがコンソールのマウスポインタって消せるのかね?

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!