#include <windows.h> #include <windowsx.h> #include "resource.h" #include <aygshell.h> #pragma comment(lib, "aygshell.lib")
//関数の宣言
BOOL DlgProc(HWND hDlg,UINT uMsg,WPARAM wParam,LPARAM lParam);
BOOL readFile(char* path,char* out_text,int* out_size);
BOOL writeFile(char* path,char* out_text,int size);
//変数の宣言
byte text[1024];
//メイン
int WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,
LPWSTR lpCmdLine,int nShowCmd) {
//ダイアログの生成
DialogBoxW(hInstance,MAKEINTRESOURCE(IDD_DIALOG1),NULL,DlgProc);
return 0;
}
//ダイアログのイベント処理
BOOL DlgProc(HWND hDlg,UINT uMsg,WPARAM wParam,LPARAM lParam) {
char str[1024]={0};
TCHAR strw[1024]={0};
int size=0;
switch(uMsg) {
//初期化
case WM_INITDIALOG:{
//フルスクリーン
SHINITDLGINFO sidi={
SHIDIM_FLAGS,hDlg,
SHIDIF_DONEBUTTON|SHIDIF_SIZEDLGFULLSCREEN|SHIDIF_EMPTYMENU};
SHInitDialog(&sidi);
}
break;
//コマンド
case WM_COMMAND:
switch(LOWORD(wParam)) {
//読み込みボタン
case IDC_READ:
//読み込み
if (readFile("test.txt",str,&size)) {
//char→TCHAR変換
MultiByteToWideChar(CP_ACP,0,str,size,strw,1024-1);
//テキストの指定
Edit_SetText(GetDlgItem(hDlg,IDC_EDIT1),strw);
} else {
MessageBoxW(NULL,_T("エラーです。"),_T(""),0);
}
break;
//書き込みボタン
case IDC_WRITE:
//テキストの取得
Edit_GetText(GetDlgItem(hDlg,IDC_EDIT1),strw,1024);
//TCHAR→char変換
WideCharToMultiByte(CP_ACP,0,strw,wcslen(strw),str,1024-1,NULL,NULL);
//書き込み
if (writeFile("test.txt",str,strlen(str))) {
MessageBoxW(NULL,_T("保存しました。"),_T(""),0);
} else {
MessageBoxW(NULL,_T("エラーです。"),_T(""),0);
}
break;
//OKボタン
case IDOK:
EndDialog(hDlg,LOWORD(wParam));
break;
}
break;
//クローズ
case WM_CLOSE:
DestroyWindow(hDlg);
break;
}
return FALSE;
}
//ファイルの読み込み
BOOL readFile(char* path,char* out_text,int* out_size) {
FILE *fp;
if ((fp=fopen(path,"r"))==NULL) return FALSE;
*out_size=fread(out_text,sizeof(char),1024,fp);
fclose(fp);
return TRUE;
}
//ファイルの書き込み
BOOL writeFile(char* path,char* text,int size) {
FILE *fp;
if ((fp=fopen(path,"w"))==NULL) return FALSE;
fwrite(text,sizeof(char),size+1,fp);
fclose(fp);
return TRUE;
}
|