トップページ > 記事閲覧
ドラッグアンドドロップ時のファイルの出現順
名前:dra 日時: 2022/03/27 16:20

おつかれさまです 隠し関数GetDragFilePathの挙動ですが ウィンドウにファイルをDnDした際、ファイルの出現順が逆順ではないかと思います Windows/DxWindow.cpp:NS_GetDragFilePathを見た感じ、積んだのと逆順に出力されているようなのでそれが原因かと思います こちらは想定した動作でしょうか? ``` #include "DxLib.h" #include <stdlib.h> int main(){ ChangeWindowMode(1); SetAlwaysRunFlag(1); if(DxLib_Init() == -1){ return -1; } SetDrawScreen(DX_SCREEN_BACK); SetDragFileValidFlag(1); size_t size = 0; TCHAR* path = NULL; while(ProcessMessage() != -1){ ClearDrawScreen(); while((size = GetDragFilePath(NULL)) != -1){ if(!(path = (TCHAR*)malloc(size))){ return -1; } GetDragFilePath(path, size); printf("%s\n", path); free(path); } ScreenFlip(); } DxLib_End(); return 0; } ``` エクスプローラ(レイアウト:詳細、名前昇順でソート)で C:直下の1.txt 2.txt 3.txtをまとめてDnDする(このとき1.txt上でドラッグを開始するものとする)と ``` C:\3.txt C:\2.txt C:\1.txt ``` のように出力されます 困っているわけでもないので「そういうもの」という回答でも構いません
メンテ

Page: 1 |

Re: ドラッグアンドドロップ時のファイルの出現順 ( No.1 )
名前:管理人 日時:2022/03/29 02:43

実装したのが10年以上前なので覚えていませんが、恐らく実装当時は逆順になることを理解した上で そのような仕様にしていたと思います ただ、現在の感覚では順番が逆になるのは気持ち悪い気がしますので、逆順にならないように処理を変更してみました その変更を加えたバージョンをこちらにアップしましたので、よろしければお試しください m(_ _)m https://dxlib.xsrv.jp/temp/DxLibVCTest.zip // Windows版 VisualC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCCTest.zip // Windows版 BorlandC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCC2Test.zip // Windows版 C++ Builder 10.3 用 https://dxlib.xsrv.jp/temp/DxLibGCC_MinGWTest.zip // Windows版 MinGW 用 https://dxlib.xsrv.jp/temp/DxLibDotNet.zip // Windows版 .NET用 https://dxlib.xsrv.jp/temp/DxLibMakeTest.zip // ソース (中身を既存のライブラリのファイルに上書きして『リビルド』をして下さい)
メンテ
Re: ドラッグアンドドロップ時のファイルの出現順 ( No.2 )
名前:dra(解決) 日時:2022/04/15 12:50

おまたせしてしまってすいません こちらVC版を使ってテストしましたが問題なく動作しました 対応ありがとうございます!
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存