Главная страница Случайная страница Разделы сайта АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
💸 Как сделать бизнес проще, а карман толще?
Тот, кто работает в сфере услуг, знает — без ведения записи клиентов никуда. Мало того, что нужно видеть свое раписание, но и напоминать клиентам о визитах тоже.
Проблема в том, что средняя цена по рынку за такой сервис — 800 руб/мес или почти 15 000 руб за год. И это минимальный функционал.
Нашли самый бюджетный и оптимальный вариант: сервис VisitTime.⚡️ Для новых пользователей первый месяц бесплатно. А далее 290 руб/мес, это в 3 раза дешевле аналогов. За эту цену доступен весь функционал: напоминание о визитах, чаевые, предоплаты, общение с клиентами, переносы записей и так далее. ✅ Уйма гибких настроек, которые помогут вам зарабатывать больше и забыть про чувство «что-то мне нужно было сделать». Сомневаетесь? нажмите на текст, запустите чат-бота и убедитесь во всем сами! Списки рядків
Створення списку. Списки рядків створюють на базі класу LISTBOX. Рядки в списку нумерує операційна система, і номер першого рядка дорівнює 0. Списки можуть бути одноколонкові та багатоколонкові, з вертикальною (для одноколонкових списків) та горизонтальною (для багатоколонкових списків) смугою перегляду. При створенні списку першим аргументом функції CreateWindow є вказівник на рядок “LISTBOX”, а третій аргумент задають за допомогою таблиці 3.2.
Таблиця 3.2. Список стилів списку рядків
Наприклад: hListBox=CreateWindow(" LISTBOX", NULL, WS_CHILD|WS_VISIBLE|LBS_STANDARD|LBS_WANTKEYBOARDINPUT, 30, 30, 200, 100, hwnd, (HMENU)ID_LIST, hInst, NULL); Другий аргумент функції повинен бути вказаний як NULL. Додатково до стилів вікна WS_CHILD та WS_VISIBLE вказують стилі списку, імена яких мають префікс LBS_ Повідомлення від списку. Список зі стилем LBS_NOTIFY надсилає в функцію батьківського вікна сповіщувальне повідомлення WM_COMMAND. При цьому молодше слово параметру wParam дорівнює ідентифікатору списка. Параметр lParam містить дескриптор списку. Старше слово параметра wParam мітсить один з кодів сповіщення. Повідомлення для списку. Додаток може надсилати списку повідомлення, викликаючи функцію SendMessage. Символічні імена цих повідомлень мають префікс LB_ Приклад роботи зі списком. Задача. У вікні додатку створитти однорядковий редактор, список і кнопку “Добавити”. При натисканні на кнопку вміст редактора записати в список. При подвійному клацанні по рядку списку повідомити про рядок, який був обраний. Розв‘язок. #include " Functions.h" #define ID_EDIT 1000 #define ID_LISTBOX 1001 #define ID_BUTTON 1002 LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); HINSTANCE hInstance; char szClassName[]=" ListDir"; char szTitle[]=" Приклад"; INT WINAPI WinMain(HINSTANCE hInst, HINSTANCE, PSTR, INT nCmdShow) { MSG msg; HWND hwnd; hInstance=hInst; if (! RegClass(WndProc, szClassName, COLOR_WINDOW)) return FALSE; if(! (hwnd=CreateWindow(szClassName, szTitle, WS_OVERLAPPEDWINDOW|WS_VISIBLE, 100, 50, 364, 260, 0, 0, hInst, NULL))) return FALSE; while (GetMessage(& msg, NULL, 0, 0)) { TranslateMessage(& msg); DispatchMessage(& msg); } return msg.wParam; } LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { static HWND hListBox, hEdit, hButton, hStatic; int uItem; char Buf[80]; switch(msg) { case WM_CREATE: { hStatic=CreateWindow(" STATIC", " Введіть рядок для введення в список", WS_CHILD|WS_VISIBLE|SS_CENTER, 30, 10, 300, 20, hwnd, (HMENU)0, hInstance, NULL); hEdit=CreateWindow(" EDIT", NULL, WS_CHILD|WS_VISIBLE|WS_BORDER|ES_LEFT|ES_AUTOSCROLL, 30, 40, 300, 30, hwnd, (HMENU)ID_EDIT, hInstance, NULL); SendMessage(hEdit, EM_LIMITTEXT, 35, 0L); HListBox=CreateWindow(" LISTBOX", NULL, WS_CHILD|WS_VISIBLE|LBS_STANDARD, 30, 80, 300, 100, hwnd, (HMENU)ID_LISTBOX, hInstance, NULL); hButton=CreateWindow(" BUTTON", " Додати", WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON, 130, 85, 100, 30, hwnd, (HMENU)ID_BUTTON, hInstance, NULL); SetFocus(hEdit); return 0; } case WM_COMMAND: { switch (LOWORD (wParam)) { case ID_LISTBOX: {switch (HIWORD(wParam)) {case LBN_ERRSPACE: {MessageBox(hwnd, " Мало пам'яті", szTitle, MB_OK); return 0; } case LBN_DBLCLK: {uItem=(int)SendMessage(hListBox, LB_GETCURSEL, 0, 0L); If (uItem! =LB_ERR) {SendMessage(hListBox, LB_GETTEXT, uItem, (LPARAM)Buf); MessageBox(hwnd, Buf, szTitle, MB_OK); } return 0; } default: return 0; } return 0; } case ID_BUTTON: {SendMessage(hEdit, EM_GETLINE, 0, (LPARAM)Buf); SendMessage(hListBox, LB_ADDSTRING, 0, (LPARAM)Buf); SetWindowText(hEdit, " \0"); SetFocus(hEdit); return 0; } default: return 0; } } case WM_DESTROY: {PostQuitMessage(0); return 0; } } return DefWindowProc(hwnd, msg, wParam, lParam); }
|