http://wasm.ru/article.php?article=1001001 Попробуй это читать и сразу в си код переводить,много скилла получишь и экспы
Вывод получилось так: Про функции обязательно прочитаю. Еще вопрос. Как сделать ввод от пользователя, и сохранение в переменной?
Код (Text): #include <windows.h> #include <mmsystem.h.> #pragma comment(lib, "winmm.lib") /* Подключаем библиотеку для Play Sound */ #define ID_BUTTON1 500 /* Директива для кнопки */ HINSTANCE hInst; HWND hwnd; HWND button; /* Переменные */ HDC hdcj; POINT pt; LRESULT CALLBACK WndProc(HWND hwnd,UINT msg,WPARAM wParam,LPARAM lParam) /* Обработчик событий */ { switch (msg) /* Ветвление, зависящие от событи, поступившего от ОС */ /* msg - переменная, хранящая текущее событие */ { case WM_DESTROY: /* От ОС поступило сообщение о выходе */ PostQuitMessage(0); break; case WM_LBUTTONDOWN: /* Нажата левая кнопка мыши в клиентской области */ { MessageBeep(0); /* Звук */ MessageBox(NULL, L"Никто кликать вам не разрешал!", L"Error", 16); /* Сообщение */ break; } case WM_COMMAND: /* Нажатие на кнопку */ { MessageBox(NULL, L"Сейчас будет проиграна мелодия", L"Сообщение", 0); PlaySound(L"р.wav", NULL, SND_ASYNC | SND_FILENAME ); /* Играем звук */ break; } default: return DefWindowProc(hwnd,msg,wParam,lParam); /* Стандартный обработчик событий */ } return 0; } int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, INT nCmdShow) /* Главное окно, главная функция */ { WNDCLASS wc; /* Структура */ memset(&wc,0,sizeof(WNDCLASS)); /* Выделение дом. битов по размеру WNDCLASS */ wc.style = CS_OWNDC | CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS; /* Стиль */ wc.lpfnWndProc = (WNDPROC)WndProc; /* Процедура обработки */ wc.hInstance = hInst; /* Текущий хэндл */ wc.hbrBackground = (HBRUSH)(0); /* Фон */ wc.lpszClassName = L"WndClass"; /* ИМЯ */ wc.hCursor = LoadCursor(NULL, IDC_ARROW); /* Курсор */ wc.hIcon = LoadIcon(NULL, IDI_EXCLAMATION); /* Иконка */ if (!RegisterClass(&wc)) return 0; /* Если ошибка возвращаем , выходим */ MSG ms; MSG msg; /* Переменные */ hInst = hInstance; hwnd = CreateWindow(L"WndClass",L"Click", /* Создаем окно */ WS_MINIMIZEBOX|WS_VISIBLE|WS_CLIPSIBLINGS|WS_CLIPCHILDREN| WS_MAXIMIZEBOX|WS_CAPTION|WS_BORDER|WS_SYSMENU|WS_THICKFRAME, /* Параметры */ CW_USEDEFAULT,0,CW_USEDEFAULT,0, 0, 0, hInst, NULL); ShowWindow(hwnd, SW_SHOW); /* Показываем окно */ button = CreateWindow(L"button",L"МУЗЫКА",WS_VISIBLE|WS_CHILD,5,5,400,30,hwnd,(HMENU)ID_BUTTON1,NULL,NULL); /* Создаем кнопку */ wchar_t *str = ('b'); DrawText(hdcj, str, sizeof("Наконец!"), lpRect, DT_CENTER); while (GetMessage(&msg,NULL,0,0)) /* Перевод сообщений */ { TranslateMessage(&msg); DispatchMessage(&msg); } return msg.wParam; }
используй расширееный класс окга, это чет на глаз давит не все поля запонены wchar_t *str = ('b'); у тебя один символ, зачем указатель, зачем скобки, используй чар просто, зачем тебя расширенный чар?
1) А что за расширенный класс? 2) Так как с помощью DrawText вывести на экран "Привет"? 3) Какие пустые?
Почиатй про WM_PAINT В неё надо рисовать case WM_PAINT: hDC=BeginPaint(hWnd,&ps); GetClientRect(hWnd,&rect); EndPaint(hWnd,&ps); break;
typedef struct { UINT cbSize; UINT style; WNDPROC lpfnWndProc; int cbClsExtra; int cbWndExtra; HINSTANCE hInstance; HICON hIcon; HCURSOR hCursor; HBRUSH hbrBackground; LPCTSTR lpszMenuName; LPCTSTR lpszClassName; HICON hIconSm; } WNDCLASSEX, *PWNDCLASSEX;
1) VS ругается: ..., str, вот на str - Аргумент типа char несовместим c параметром типа LPCWSTR 2) Как сделать lpRect?
Лол)) Ты хоть что нитбудь прочитал? Ты какую нибудь литературу читаешь. Бро, думаю у тебя нету базиса. Советую учить Си для начала. В. В. Подбельский в руки и читкать. Угу. И паралельно английский язык. Угу и ещё паралельно. НУ к примеру. Румянцева -Винь Апиь
yashechka Хорошо, хорошо. 1) Как вывести текст с помощью DrawText (Покажите на фрагменте?) 2) Как создать поле ввода от пользователя (Если можно тоже на фрагменте готовом)