開発環境 |
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