/* --------------------------------------------------------------------- * PasswddlgCreateHook * Create dialog controls * --------------------------------------------------------------------- */ static void PasswddlgCreateHook(void* w) { CUIWINDOW* win = (CUIWINDOW*) w; CUIWINDOW* ctrl; PASSWDDLGDATA* data = (PASSWDDLGDATA*) win->InstData; ctrl = LabelNew(win, _T("Enter Password:"******"Retype Password:"******"&OK"), 14, 6, 10, 1, IDOK, CWS_DEFOK, CWS_NONE); ButtonSetClickedHook(ctrl, PasswddlgButtonHook, win); WindowCreate(ctrl); ctrl = ButtonNew(win, _T("&Cancel"), 27, 6, 10, 1, IDCANCEL, CWS_DEFCANCEL, CWS_NONE); ButtonSetClickedHook(ctrl, PasswddlgButtonHook, win); WindowCreate(ctrl); }
/* --------------------------------------------------------------------- * PasswddlgButtonHook * Handle button events * --------------------------------------------------------------------- */ static void PasswddlgButtonHook(void* w, void* c) { CUIWINDOW* win = (CUIWINDOW*) w; CUIWINDOW* ctrl = (CUIWINDOW*) c; PASSWDDLGDATA* data = (PASSWDDLGDATA*) win->InstData; if (ctrl->Id == IDOK) { ctrl = WindowGetCtrl(win, IDC_EDTEXT1); if (ctrl) { EditGetText(ctrl, data->Password, MAX_PASSWD_SIZE); } ctrl = WindowGetCtrl(win, IDC_EDTEXT2); if (ctrl) { wchar_t cmptext[MAX_PASSWD_SIZE + 1]; EditGetText(ctrl, cmptext, MAX_PASSWD_SIZE); if (wcscmp(cmptext, data->Password) != 0) { MessageBox(win, _T("Passwords to not match! Please enter them again."), _T("Error"), MB_ERROR); EditResetInput(ctrl); ctrl = WindowGetCtrl(win, IDC_EDTEXT1); if (ctrl) { EditResetInput(ctrl); WindowSetFocus(ctrl); } return; } } WindowClose(win, IDOK); } else { WindowClose(win, IDCANCEL); } }
long FAR PASCAL _export _EasyWinProc(HWND Window, UINT Message, WPARAM WParam, LONG LParam) { CrtWindow = Window; switch (Message) { case WM_CREATE: WindowCreate(); break; case WM_PAINT: WindowPaint(); break; case WM_VSCROLL: WindowScroll(SB_VERT, WParam, LoVal(LParam)); break; case WM_HSCROLL: WindowScroll(SB_HORZ, WParam, LoVal(LParam)); break; case WM_SIZE: WindowResize(LoVal(LParam), HiVal(LParam)); break; case WM_GETMINMAXINFO: WindowMinMaxInfo((TMinMaxInfo far *) LParam); break; case WM_CHAR: WindowChar((char)WParam); break; case WM_KEYDOWN: WindowKeyDown((BYTE)WParam); break; case WM_SETFOCUS: WindowSetFocus(); break; case WM_KILLFOCUS: WindowKillFocus(); break; case WM_DESTROY: WindowDestroy(); break; default: return DefWindowProc(Window, Message, WParam, LParam); } return NULL; }