//Window Procedure LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) { int id; static HWND hEdit; switch (msg) { case WM_CREATE: // Create Edit Control hEdit = CreateWindow(TEXT("EDIT"), NULL, WS_CHILD | WS_VISIBLE | ES_WANTRETURN | ES_MULTILINE | ES_AUTOVSCROLL | WS_VSCROLL | ES_AUTOHSCROLL | WS_HSCROLL, 0, 0, 0, 0, hWnd, (HMENU)ID_EDIT, hInst, NULL); lstrcat(szTitle, TEXT("[無題]")); SetWindowText(hWnd, szTitle); Edit_LimitText(hEdit, 0); break; case WM_SIZE: // Adjust Window Size MoveWindow(hEdit, 0, 0, LOWORD(lp), HIWORD(lp), TRUE); break; case WM_COMMAND: switch (LOWORD(wp)) { case IDM_NEW: MyNew(hEdit); break; case IDM_OPEN: MyOpen(hEdit); break; case IDM_END: SendMessage(hWnd, WM_CLOSE, 0, 0); break; case IDM_SAVE: MySave(hEdit); break; case IDM_SAVEAS: MySaveAs(hEdit); break; } break; case WM_SETFOCUS: SetFocus(hEdit); //set focus to edit control break; case WM_CLOSE: id = MyConfirm(hEdit); if (id == IDCANCEL) break; id = MessageBox(hWnd, TEXT("終了してもよろしいですか"), TEXT("確認"), MB_YESNO | MB_ICONQUESTION); if (id == IDYES) { DestroyWindow(hEdit); //destroy edit control DestroyWindow(hWnd); } break; case WM_DESTROY: PostQuitMessage(0); break; default: return (DefWindowProc(hWnd, msg, wp, lp)); } return 0; }
void* operator new[](size_t size, char *szFile, int nLine) { return MyNew(size, szFile, nLine); }