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

Не могу создать окно WINAPI

21.09.2015, 16:41. Показов 1877. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
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
#define WIN32_LEAN_AND_MEAN
#include<cstdlib>
#include<math.h>
#include<windows.h>
#include<windowsx.h>
LRESULT CALLBACK WinProc(HWND hwnd,UINT msg,WPARAM wparam, LPARAM lparam){
    PAINTSTRUCT ps;
    HDC hdc;
    switch(msg){
    case WM_CREATE:{
        return 0;
        }break;
    case WM_PAINT:{
        hdc=BeginPaint(hwnd,&ps);
        EndPaint(hwnd,&ps);
        return 0;
        }break;
    case WM_DESTROY:{
        PostQuitMessage(0);
        return 0;
        }break;
    default:break;
    }
    return DefWindowProc(hwnd,msg,wparam,lparam);
}
int WINAPI WinMain(HINSTANCE h,HINSTANCE hp,LPSTR lp,int cm){
    WNDCLASSEX wcx;
    wcx.cbSize=sizeof(WNDCLASSEX);
    wcx.style=CS_HREDRAW|CS_VREDRAW|CS_NOCLOSE|CS_OWNDC|CS_DBLCLKS;
    wcx.lpfnWndProc=WinProc;
    wcx.cbClsExtra=0;
    wcx.cbWndExtra=0;
    wcx.hIcon=LoadIcon(NULL,IDI_APPLICATION);
    wcx.hCursor=LoadCursor(NULL,IDC_WAIT);
    wcx.hbrBackground=(HBRUSH)GetStockObject(GRAY_BRUSH);
    wcx.lpszMenuName=NULL;
    wcx.lpszClassName="WINCLASS1";
    wcx.hIconSm=LoadIcon(NULL,IDI_APPLICATION);
    if(RegisterClassEx(&wcx)==NULL){
        MessageBeep(MB_ICONASTERISK);
        MessageBoxA(NULL,"Класс не зарегистрирован","Ошиибка",IDOK);
        return 0;
    }
    HWND hwnd;
    int error=0;
    if((hwnd=CreateWindowEx(NULL,"WINCLASS1","First Window",WS_VISIBLE,
        100,100,800,600,NULL,NULL,h,NULL))==NULL){
        MessageBeep(MB_ICONASTERISK);
        error=GetLastError();
        MessageBoxA(NULL,"Окно не создано","Ошибка",IDOK);
        //return error;
    }
    return error;
}
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.09.2015, 16:41
Ответы с готовыми решениями:

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

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

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

3
43 / 43 / 21
Регистрация: 24.08.2015
Сообщений: 136
21.09.2015, 17:08
Лучший ответ Сообщение было отмечено banbezv1999 как решение

Решение

banbezv1999, Заполняй класс окна правильно, добавь wcx.hInstance=h;
1
188 / 120 / 4
Регистрация: 23.01.2010
Сообщений: 1,320
21.09.2015, 19:47
Вот посмотри:

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
//Тут всякие переменные 
TCHAR czClassName[] = L"myClass";   //имя класса окна произвольно
TCHAR czFormName[] = L"Это мое окно"; //название окна в заголовке
 
//тут заполняем класс окна, определяем так сказать как окно должно выглядить  
ATOM myRegistryClass(HINSTANCE hInst, int cmdMode)
{
    WNDCLASS cw;
 
    cw.style = CS_VREDRAW | CS_HREDRAW;
    cw.cbClsExtra = 0;
    cw.cbWndExtra = 0;
    cw.hbrBackground = (HBRUSH)(COLOR_WINDOW +2);
    cw.hCursor = LoadCursor(NULL, IDC_ARROW);
    cw.hIcon = LoadIcon(NULL, IDI_APPLICATION);
    cw.hInstance = hInst;
    cw.lpfnWndProc = WndProc;
    cw.lpszClassName = czClassName;
    cw.lpszMenuName = NULL;
 
    RegisterClass(&cw);
 
    return 0;
}
 
 
//тут на базе класс создаем окно
BOOL InitInstance(HINSTANCE hInst, int Mode)
{
 
 
    hwndA = CreateWindow(
        czClassName, 
        czFormName,
        WS_OVERLAPPEDWINDOW,
        CW_USEDEFAULT, 
        CW_USEDEFAULT,
        CW_USEDEFAULT,
        CW_USEDEFAULT,
        NULL,
        NULL,
        hInst,
        NULL);
 
    ShowWindow(hwndA, Mode);
    UpdateWindow(hwndA);
 
    return TRUE;
}
 
 
 
 
/*Главная функция, тут вход в программу*/
int WINAPI WinMain (HINSTANCE hInst, HINSTANCE hPrevInstance, LPSTR IpszCmdParam, int cmdShow)
{  
    MSG msg;
    
    myRegistryClass(hInst, cmdShow);
    InitInstance(hInst, cmdShow);
    
    while (GetMessage (&msg, NULL, 0, 0))
    {
        TranslateMessage (&msg);
        DispatchMessage (&msg);
    }
 
    return 0;
}
Если чего моленько не так извиняйте вроде работать должно.
1
Brainsbreaker
 Аватар для Digit@ll
899 / 374 / 54
Регистрация: 01.02.2011
Сообщений: 1,608
21.09.2015, 20:45
n971030, в первом посте к коду уже добавили одно, там не хватало только этого:
C++
1
2
3
4
MSG msg;
 
while (GetMessage (&msg, NULL, 0, 0))
    DispatchMessage (&msg);
А в 13-й строке у тебя, так делать не надо. Это уже не серый цвет, который GRAY_BRUSH, а COLOR_MENUTEXT... какой-то.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.09.2015, 20:45
Помогаю со студенческими работами здесь

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

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

WinAPI C - Не могу понять как создать таблицу?
WinAPI C - Не могу понять как создать таблицу? На днях экзамен по информатике, и не как не могу разобраться как создать таблицу в VS...

Не могу понять как создать дочернее окно
Вот сам код где и что надо дописать? #include &lt;windows.h&gt; #include &lt;stdlib.h&gt; #include &lt;string.h&gt; #include &lt;tchar.h&gt; ...

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


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru