ページ 11

カーソルの非表示

Posted: 2007年12月18日(火) 01:37
by Lbfuvab
Windows XP SP2の環境でエスケープシーケンスを使わずに
コンソール画面のカーソルを非表示にするにはどうすればいいですか?
調べても分かりませんでした。

Re:カーソルの非表示

Posted: 2007年12月18日(火) 09:06
by バグ
カーソルを非表示にするだけのサンプルを載せておきます。
添付したファイルはコンソールアプリで文字や背景の色を変更したり、Windowのサイズを変更したりといった機能を実装してあるクラスです。このクラスのSetCursorVisibleという関数内で同じ処理を行っています。良かったら、ご覧下さい。
#include	<windows.h>

void main()
{
	HANDLE hOut;
	CONSOLE_CURSOR_INFO cci;

	// 出力用ハンドルの取得
	hOut = GetStdHandle(STD_OUTPUT_HANDLE);

	// CONSOLE_CURSOR_INFO構造体の現在の状態を取得する
	GetConsoleCursorInfo(hOut, &cci);

	// メンバ変数であるbVisibleがカーソルの表示・非表示を制御する変数なので、これをFALSEにする事でカーソルを非表示にできる
	cci.bVisible = FALSE;

	// 変更した構造体情報をコンソールWindowにセットする
	SetConsoleCursorInfo(hOut, &cci);
}

Re:カーソルの非表示

Posted: 2007年12月18日(火) 15:11
by Lbfuvab
有難うございました。
探してもCONSOLE_SCREEN_BUFFER_INFOは載ってても
CONSOLE_CURSOR_INFOはなかったんです。

Re:カーソルの非表示

Posted: 2007年12月18日(火) 15:29
by バグ
確かにコンソール関係って、MSDNでも日本語で解説してない物が多いので、結構調べにくいですよね(^_^;)

もう必要ないかもしれませんが、コンソール関係の構造体のページを載せておきます。

http://msdn2.microsoft.com/en-us/library/ms682101.aspx