ファイルドロップクラスの作成(DXライブラリ) | vicのブログ

vicのブログ

ツール系やソフト開発について書こうと思っています。
書き込み大歓迎です。
間違いとかもっといい方法とかあったらご指摘いただけるとありがたいです。
質問をいただいたら、記事をもっとわかりやすく変更します。

ファイルドロップに関して調べたが、
使い勝手の悪いサンプルしかなかったので
仕方なく作成。

メソッドはそれぞれ1回しか使わないと思うので、
インラインメソッド。導入楽だし。

DXライブラリのバグ?かどうか不明だが、
クリアしているにもかかわらず、ドロップファイルの過去の情報が残っている
場合がある。


class DropFile
{
public:
char filePath[20 + 1][256]; // とりあえず20もあれば大丈夫でしょう、ということで
int count;
// 初期化、必ずゲームループの前に行うこと バックグラウンド処理&ファイルのドロップ許可
DropFile()
{
DragFileInfoClear(); // ドロップファイル情報の初期化
SetAlwaysRunFlag(true); // バックグラウンドでも動作を継続
SetDragFileValidFlag(true); // ファイルのD&Dを許可
count = 0;
}
// ファイルドロップ確認&情報取得 ゲームループ中に記載
void Check()
{   // ドロップファイルの処理
int num = GetDragFileNum(); // ドロップファイルの数を取得
int i; for (i = 0; GetDragFilePath(filePath[i]) == 0; i++); // ドロップファイルが存在する場合
if (i)
{
filePath[i][0] = 0; //終了データ
count = num; // ファイルパスが存在しているのでファイル数を格納
}
DragFileInfoClear(); // ドロップファイル情報の初期化
return;
}
};