#include #include "richedit.h" #include #include #include #include "dlgmain.h" void ResizeChildren(VARS *v) { RECT mainRect; GetClientRect(v->hwndMain, &mainRect); MoveWindow(GetDlgItem(v->hwndMain, IDC_EDIT1), 0, 0, mainRect.right, mainRect.bottom - 161, TRUE); MoveWindow(GetDlgItem(v->hwndMain, IDC_EDIT2), 0, mainRect.bottom - 160, mainRect.right, 135, TRUE); } BOOL CALLBACK AboutDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam) { switch (msg) { case WM_INITDIALOG: return TRUE; case WM_COMMAND : switch (LOWORD (wParam)) { case IDOK: case IDCANCEL: EndDialog (hDlg, 0); return TRUE ; } break; } return FALSE; } BOOL CALLBACK MainWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { WORD id; static VARS *v; switch (msg) { case WM_INITDIALOG: v = (VARS**)lParam; break; case WM_SIZE: SendMessage(GetDlgItem(hwnd, IDC_STATUS), WM_SIZE, wParam, lParam); SetStatusParts(GetDlgItem(hwnd, IDC_STATUS), 2); ResizeChildren(v); break; case WM_COMMAND: id = LOWORD(wParam); switch (id) { case IDM_EXIT: PostQuitMessage(0); break; case IDM_ABOUT: DialogBox (v->hInst, "AboutBox", v->hwndMain, AboutDlgProc); break; default: return FALSE; } break; case WM_CLOSE: DestroyWindow(hwnd); break; case WM_DESTROY: PostQuitMessage(0); break; default: return FALSE; } return TRUE; } static VARS* Init(HINSTANCE hInst, LPSTR cmdLine, INT nCmdShow) { WNDCLASS wc; VARS *v; if (! LoadLibrary("riched20.dll")) { MBPrintf("SQLShell", "Couldn't load riched20.dll"); return NULL; } v = (VARS*)malloc(sizeof(VARS)); v->hInst = hInst; GetClassInfo(NULL, "#32770", &wc); wc.hIcon = LoadIcon(hInst, "Icon"); wc.lpszMenuName = "MainMenu"; wc.lpszClassName = "MainWndClass"; if (! RegisterClass(&wc)) return NULL; v->hwndMain = CreateDialogParam(v->hInst, "MainWnd", 0, MainWndProc, (LPARAM)v); ShowWindow(v->hwndMain, nCmdShow); return v; } int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, INT nCmdShow) { MSG msg; VARS *v; HACCEL hAccel; if (! (v = Init(hInstance, lpCmdLine, nCmdShow))) return 0; if (! (hAccel = LoadAccelerators(v->hInst, "Accel"))) return 0; while (GetMessage (&msg, NULL, 0, 0)) { if (! TranslateAccelerator(v->hwndMain, hAccel, &msg)) { TranslateMessage(&msg); DispatchMessage(&msg); } } return msg.wParam; } .