MESSAGE_HANDLER(WM_DROPFILES, OnDropFiles)
//ドラッグアンドドロップで開く
LRESULT OnDropFiles(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lParam*/, BOOL& bHandled)
{
bool bRet;
UINT i;
UINT nSize;
UINT ret;
HDROP hDrop;
TCHAR pszBuff[MAX_PATH*10];
hDrop = (HDROP)wParam;
nSize = ::DragQueryFile(hDrop,-1,NULL,0);
for(i = 0; i < nSize; i++)
{
ret = ::DragQueryFile(hDrop,i,pszBuff,MAX_PATH*10);
if(ret == -1)
continue;
if(::PathIsDirectory(pszBuff))
continue;
bRet = LoadImage(pszBuff);
if(bRet)
break;
}
::DragFinish(hDrop);
return 0;
}
//ドラッグアンドドロップを受け入れる ::DragAcceptFiles(m_hWnd,TRUE);
![]()
これで自由にドラッグ・アンド・ドロップしてファイルを読み込めるようになった。
また、「ファイルを開く」ダイアログではJPEGファイルしか選択できなかった。しかしドラッグ・アンド・ドロップ処理では拡張子のチェックを入れていないので、PNGやGIFなどJPEGファイル以外の様々な画像ファイルを開ける。
