Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
0 / 0 / 0
Регистрация: 29.06.2015
Сообщений: 61

Создать окно WinAPI

01.07.2015, 11:05. Показов 1793. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
выдает ошибку с2059: синтаксическая ошибка:,
ругается на эту строчку hwnd = CreateWindow(szAppName, ...
про данную ошибку читал но так и не смог ничего вразумительного сделать


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#include <windows.h>
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
    PSTR szCmdLine, int iCmdShow)
{
    static char szAppName[] = "EMF2";
    HWND hwnd;
    MSG msg;
    WNDCLASSEX wndclass;
    wndclass.cbSize = sizeof(wndclass);
    wndclass.style = CS_HREDRAW | CS_VREDRAW;
    wndclass.lpfnWndProc = WndProc;
    wndclass.cbClsExtra = 0;
    wndclass.cbWndExtra = 0;
    wndclass.hInstance = hInstance;
    wndclass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
    wndclass.hCursor = LoadCursor(NULL, IDC_ARROW);
    wndclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
    wndclass.lpszMenuName = NULL;
    wndclass.lpszClassName = szAppName;
    wndclass.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
    RegisterClassEx(&wndclass);
    hwnd = CreateWindow(szAppName, "Metafile",
        WS_OVERLAPPEDWINDOW,
        CW_USEDEFAULT, CW_USEDEFAULT,
        NULL, NULL, hInstance, NULL);
    ShowWindow(hwnd, iCmdShow);
    UpdateWindow(hwnd);
    while (GetMessage(&msg, NULL, 0, 0))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
    return msg.wParam;
}
 
LRESULT CALLBACK WndProc(HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
{
    HDC hdc, hdcEMF;
    HENHMETAFILE hemf;
    PAINTSTRUCT ps;
    RECT rect;
    switch (iMsg)
    {
    case WM_CREATE:
        hdcEMF = CreateEnhMetaFile(NULL, "emf2.emf", NULL,
            "EMF2\0EMF Demo #2\0");
        Rectangle(hdcEMF, 100, 100, 200, 200);
        MoveToEx(hdcEMF, 100, 100, NULL);
        LineTo(hdcEMF, 200, 200);
        MoveToEx(hdcEMF, 200, 100, NULL);
        LineTo(hdcEMF, 100, 200);
        hemf = CloseEnhMetaFile(hdcEMF);
        DeleteEnhMetaFile(hemf);
        return 0;
    case WM_PAINT:
        hdc = BeginPaint(hwnd, &ps);
        GetClientRect(hwnd, &rect);
        rect.left = rect.right / 4;
        rect.right = 3 * rect.right / 4;
        rect.top = rect.bottom / 4;
        rect.bottom = 3 * rect.bottom / 4;
        hemf = GetEnhMetaFile("emf2.emf");
        PlayEnhMetaFile(hdc, hemf, &rect);
        DeleteEnhMetaFile(hemf);
        EndPaint(hwnd, &ps);
        return 0;
    case WM_DESTROY:
        PostQuitMessage(0);
        return 0;
    }
    return DefWindowProc(hwnd, iMsg, wParam, lParam);
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.07.2015, 11:05
Ответы с готовыми решениями:

Не могу создать окно WINAPI
#define WIN32_LEAN_AND_MEAN #include&lt;cstdlib&gt; #include&lt;math.h&gt; #include&lt;windows.h&gt; #include&lt;windowsx.h&gt; LRESULT CALLBACK...

Как создать окно на WinAPI
Здравствуйте ,я хочу создать окно на WinAPI ,как я выяснил есть такая функция как CreateWindow(); ,и еще есть такая структура как ...

Как создать окно в WinAPI
У кого среда Rad Studio помогите!!! почему не создаётся окно через WinAPI, компиль ругается на 2 файла OBJ, кому не трудно напишите код...

4
 Аватар для jonson
240 / 213 / 84
Регистрация: 18.03.2010
Сообщений: 750
01.07.2015, 15:55
Цитата Сообщение от ygarnui Посмотреть сообщение
читал но так и не смог ничего вразумительного сделать
параметры не пробовал передавать в соответствии описания CreateWindow ?
0
0 / 0 / 0
Регистрация: 29.06.2015
Сообщений: 61
01.07.2015, 16:07  [ТС]
да понял уже, забыл размеры окна указать
0
64 / 65 / 44
Регистрация: 05.12.2014
Сообщений: 475
05.07.2015, 18:25
Делаю форму по книге, там навзвание класса и заголовок окна определяются в начале так:
C++
1
2
LPCSTR szClassName = "myclass";
LPCSTR szTitle = "window Title";
но функция CreateWindow их не принемает. Никак не могу понять к какому типу их превести чтобы в заголовке не было каракуль
0
Диванный эксперт
Эксперт С++
 Аватар для Max Dark
2550 / 2064 / 971
Регистрация: 09.10.2013
Сообщений: 4,793
Записей в блоге: 4
05.07.2015, 18:29
C++
1
2
3
4
5
#include <tchar.h>
 
//....
LPTSTR szClassName = TEXT("myclass");
LPTSTR szTitle = TEXT("window Title");
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.07.2015, 18:29
Помогаю со студенческими работами здесь

Как создать блокирующее окно используя WinAPI?
Необходимо создать окно, которое будет полностью блокировать работу пользователя, пока он его не закроет. Возможно ли такое средствами...

Помогите создать окно на WinAPI c помощью классов
Добрый день всем.Хочу создать окно на основе классов,то есть регистрацию окна,создание,показ на экран и тд заключить в классы Решил...

Круглое окно WinAPI C++
:wall: Как на c++ WinAPI сделать круглое окно??? IDE у меня Codeblocks!

Прозрачное окно C++ WinAPI
Доброго времени суток... Пытаюсь окно сделать прозрачным do { hwnd = FindWindow(&quot;Notepad&quot;, NULL); SetWindowText(hwnd,...

Winapi окно и кнопки
Результат задачи это пятнашки но моя задача просто создать кнопки.По этапам: 1.Создание окна 2.Фиксация размера окна чтобы не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru