GUIシェル

GUIシェル


BayGUIでGUIシェルを作っています。コンソールへの表示をGUIシェルへ曲げたいのですが、従来のMonaの手法はいろいろと問題があるので、こんなことしてみました。

#undef printf
void printf(const char *format, ...)
{
	char str[128];
	va_list args;
	int result;

	memset(str, 0, 128);
	va_start(args, format);
	result = vsprintf(str, format, args);
	va_end(args);
	dword id = MonAPI::Message::lookupMainThread("GSHELL.EX5");
	MonAPI::Message::send(id, CUSTOME_EVENT, 0, 0, 0, str);
}

printfを乗っ取ってGUIシェルに横流しするわけです。
GUIシェル側が考えなければいけないのはスクロールくらいでしょうか。
あとコンソールがプロポーショナル表示だとしょぼいので、等幅表示の仕組みをBayGUIに入れ込む予定。