開発環境 Microsoft Visual C++ 2010 Express (SP1)
実行環境 Microsoft Windows XP Home Edition (SP3)
プロジェクトの種類 Win32 プロジェクト
プロジェクト名 filecopy
アプリケーションの種類 Windows アプリケーション
追加のオプション 空のプロジェクト
文字セット Unicode


filecopy.c
#include <Windows.h>
#include "resource.h"
 
// 関数プロトタイプ宣言
INT_PTR CALLBACK DialogProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
void OnInitDialog(HWND hDlg);
void OnButtonCopy(HWND hDlg);
 
//==============================================================================
int APIENTRY WinMain(
	HINSTANCE hInstance,
	HINSTANCE hPrevInstance,
	LPSTR lpCmdLine,
	int nCmdShow)
{
	DialogBox(hInstance, MAKEINTRESOURCE(IDD_MAIN_DIALOG), NULL, DialogProc);
	return 0;
}
 
//------------------------------------------------------------------------------
INT_PTR CALLBACK DialogProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	INT_PTR iRetVal = TRUE;		// メッセージを処理した
 
	switch (uMsg) {
	case WM_COMMAND:
		switch (LOWORD(wParam)) {
		case IDC_BUTTON_COPY:
			OnButtonCopy(hDlg);
			break;
		case IDC_BUTTON_HELLO:
			MessageBox(hDlg, TEXT("world"), TEXT("hello"), MB_OK);
			break;
		}
		break;
	case WM_INITDIALOG:
		OnInitDialog(hDlg);
		iRetVal = TRUE;		// SetFocusでフォーカスを設定した場合はFALSE
		break;
	case WM_CLOSE:
		EndDialog(hDlg, IDOK);
		break;
	default:
		iRetVal = FALSE;	// メッセージを処理しなかった
	}
	return iRetVal;
}
 
//------------------------------------------------------------------------------
void OnInitDialog(HWND hDlg)
{
	RECT rcDesktop;
	RECT rcDialog;
 
	GetWindowRect(GetDesktopWindow(), &rcDesktop);
	GetWindowRect(hDlg, &rcDialog);
	SetWindowPos(hDlg, HWND_TOP,
		(rcDesktop.right - (rcDialog.right - rcDialog.left)) / 2,
		(rcDesktop.bottom - (rcDialog.bottom - rcDialog.top)) / 2,
		0, 0, SWP_NOSIZE);
}
 
//------------------------------------------------------------------------------
void OnButtonCopy(HWND hDlg)
{
	SHFILEOPSTRUCT fop;
	int i;
 
	fop.hwnd	= hDlg;
	fop.wFunc	= FO_COPY;
	fop.pFrom	= TEXT("C:\\tmp\\hoge.mp4\0");
	fop.pTo		= TEXT("Z:\\\0");
	fop.fFlags	= FOF_ALLOWUNDO;
	i = SHFileOperation(&fop);
}
 

resource.h
#define IDD_MAIN_DIALOG		100
 
#define IDC_BUTTON_COPY		1000
#define IDC_BUTTON_HELLO	1001
 

filecopy.rc
// リソース スクリプト
 
#include <windows.h>
#include "resource.h"
 
IDD_MAIN_DIALOG DIALOGEX 0, 0, 320, 240
STYLE WS_POPUPWINDOW | WS_MINIMIZEBOX
EXSTYLE WS_EX_APPWINDOW
CAPTION "filecopy"
FONT 9, "MS Pゴシック"
BEGIN
	PUSHBUTTON	"copy",IDC_BUTTON_COPY,12,12,48,16
	PUSHBUTTON	"hello",IDC_BUTTON_HELLO,12,40,48,16
END
 
最終更新:2012年09月05日 09:59