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

Начал изучать C++ WinAPI. Не работает код! Исправте пожалуйста

14.02.2014, 08:54. Показов 1131. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Начал изучать C++ Win API, но код который я написал(первый код) не работает в visual 2010 express.Нажимаю
F5 комп что-то делает , а потом пишет готово. Исправьте пожалуйста код.

Добавлено через 1 минуту
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
#include<Windows.h>
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
BOOL InitApplication(HINSTANCE);
BOOL InitInstance(HINSTANCE,int);
LPCWSTR szClassName=TEXT("FrameWndAPI");
LPCWSTR szTitle=TEXT("Alex55 Форум блокнот");
int WinMain(HINSTANCE descreptor,HINSTANCE pred_descr,LPSTR stroca,int nokno)
{
    if(!InitApplication(descreptor))
            return FALSE;
    if(!InitInstance(descreptor,nokno))
        return FALSE;
    MSG messge;
    while(GetMessage(&messge,NULL,0,0))
    {
        TranslateMessage(&messge);
        DispatchMessage(&messge);
    }
    return messge.wParam;
}
BOOL InitApplication(HINSTANCE descreptor)
{
    WNDCLASS namecl;
    namecl.style=CS_BYTEALIGNCLIENT|CS_BYTEALIGNWINDOW;
    namecl.lpfnWndProc =0;
    namecl.cbClsExtra=0;
    namecl.hInstance=descreptor;
    namecl.hIcon= LoadIcon(NULL,IDI_APPLICATION);
    namecl.hCursor=LoadCursor(NULL,IDC_WAIT);
    namecl.hbrBackground=reinterpret_cast<HBRUSH>(COLOR_HIGHLIGHT+1);
    namecl.lpszMenuName=NULL;
    namecl.lpszClassName = szClassName;
    return RegisterClass(&namecl);
}
BOOL InitInstance(HINSTANCE descreptor,int okno)
{
    HWND descr;
    descr=CreateWindow(szClassName,szTitle,WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL,descreptor,NULL);
    if(!descr)
        return FALSE;
    if(ShowWindow(descr,okno))
        return FALSE;
    if(UpdateWindow(descr))
        return FALSE;
    return TRUE;
}
LRESULT CALLBACK WndProc(HWND decscr,UINT message ,WPARAM wParam,LPARAM lParam)
{
    HDC Text;
    PAINTSTRUCT pc;
    switch(message)
    {
    case WM_PAINT:  COLORREF oldColor,oldBrColor;
        Text=BeginPaint(decscr,&pc);
        if(!Text)
        {
            MessageBox(NULL,TEXT("Контекст устройства не получен"),TEXT("Ошибка 1"),MB_OK);
            exit(1);
        }
        oldColor=SetTextColor(Text,RGB(0,255,0));
        if(oldColor==CLR_INVALID)
        {
                MessageBox(NULL,TEXT("Ошибка SetTexColor"),TEXT("Ошибка 2"),MB_OK);
            exit(2);
        }
        oldBrColor=SetBkColor(Text,RGB(0,0,0));
        if(oldBrColor==CLR_INVALID)
        {
            MessageBox(NULL,TEXT("Ошибка SetBkColor"),TEXT("Ошибка 3"),MB_OK);
            exit(3);
        }
        if(!TextOut(Text,150,0,TEXT("!!!Привет, , мир"),27))
        {
            MessageBox(NULL,TEXT("Неверное использование TextOut"),TEXT("Ошибка 4"),MB_OK);
            exit(4);
        }
        SetTextColor(Text,oldColor);
        SetBkColor(Text,oldBrColor);
        if(!EndPaint(decscr,&pc))
        {
            MessageBox(NULL,TEXT("Контекст устройства не обнаружен"),TEXT("Ошибка 5"),MB_OK);
        exit(5);
        }
        break;
    case WM_DESTROY : PostQuitMessage(0);
        break;
    default: return DefWindowProc(decscr,message,wParam,lParam);
        return 0;
    }
    return static_cast<LRESULT>(0);
}
Вот код.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.02.2014, 08:54
Ответы с готовыми решениями:

Подскажите пожалуйста только начал изучать WinApi
Написать приложение которое угадывает задуманное пользователем число от 1 до ста.для запроса к пользователю использовать окна...

Начал изучать Javascript, не работает код в консоле
Первое выражение я скопировал из файла, второе написал(переписал, для теста) сам. Почему оно не работает?

Только начал изучать WinAPI. Помогите разобраться.
Только начал так потихоньку вьезжать в WinAPI, вообще программирую на Qt. Написал я простейшую программу, по книжке, но проблема в том...

1
Заблокирован
14.02.2014, 11:13
Если ты только начал изучать С++ и WinAPI это конечно наверное просительно, а так ... кошмар
Я оставил все твои настройки окна как есть, поправил только синтаксические ошибки и баги.
P.S.: Не проще создать в Visual Studio стандартный проект Win32 И глянуть как там и что там.
P.S: Старые функции типа CreateWindow и RegisterClass я бы не использовал, лучше сразу делать как надо через Ex-функции

В общем на здоровье

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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
#include<Windows.h>
 
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
BOOL InitApplication(HINSTANCE);
BOOL InitInstance(HINSTANCE,int);
LPCWSTR szClassName=TEXT("FrameWndAPI");
LPCWSTR szTitle=TEXT("Alex55 Форум блокнот");
 
int WINAPI WinMain(HINSTANCE descreptor,HINSTANCE pred_descr,LPSTR stroca,int nokno)
{
    if(!InitApplication(descreptor))
        return FALSE;
    if(!InitInstance(descreptor,nokno))
        return FALSE;
    MSG messge;
    while(GetMessage(&messge,NULL,0,0))
    {
        TranslateMessage(&messge);
        DispatchMessage(&messge);
    }
    return messge.wParam;
}
BOOL InitApplication(HINSTANCE descreptor)
{
    WNDCLASS namecl;
    SecureZeroMemory(&namecl, sizeof(WNDCLASS));
    namecl.style = CS_BYTEALIGNCLIENT | CS_BYTEALIGNWINDOW;
    namecl.lpfnWndProc = WndProc;
    namecl.cbClsExtra = NULL;
    namecl.hInstance = descreptor;
    namecl.hIcon = LoadIcon(NULL,IDI_APPLICATION);
    namecl.hCursor = LoadCursor(NULL,IDC_WAIT);
    namecl.hbrBackground = reinterpret_cast<HBRUSH>(COLOR_HIGHLIGHT+1);
    namecl.lpszMenuName = NULL;
    namecl.lpszClassName = szClassName;
    
    return RegisterClass(&namecl);
}
BOOL InitInstance(HINSTANCE descreptor,int okno)
{
    HWND descr;
    descr = CreateWindow(szClassName,szTitle,WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL, NULL,descreptor,NULL);
    if(!descr)
        return FALSE;
 
    ShowWindow(descr,okno);
        
    if(!UpdateWindow(descr))
        return FALSE;
    return TRUE;
}
LRESULT CALLBACK WndProc(HWND decscr,UINT message ,WPARAM wParam,LPARAM lParam)
{
    HDC Text;
    PAINTSTRUCT pc;
    switch(message)
    {
    case WM_PAINT:  COLORREF oldColor,oldBrColor;
        Text=BeginPaint(decscr,&pc);
        if(!Text)
        {
            MessageBox(NULL,TEXT("Контекст устройства не получен"),TEXT("Ошибка 1"),MB_OK);
            exit(1);
        }
        oldColor=SetTextColor(Text,RGB(0,255,0));
        if(oldColor==CLR_INVALID)
        {
            MessageBox(NULL,TEXT("Ошибка SetTexColor"),TEXT("Ошибка 2"),MB_OK);
            exit(2);
        }
        oldBrColor=SetBkColor(Text,RGB(0,0,0));
        if(oldBrColor==CLR_INVALID)
        {
            MessageBox(NULL,TEXT("Ошибка SetBkColor"),TEXT("Ошибка 3"),MB_OK);
            exit(3);
        }
        if(!TextOut(Text,150,0,TEXT("!!!Привет, , мир"),27))
        {
            MessageBox(NULL,TEXT("Неверное использование TextOut"),TEXT("Ошибка 4"),MB_OK);
            exit(4);
        }
        SetTextColor(Text,oldColor);
        SetBkColor(Text,oldBrColor);
        if(!EndPaint(decscr,&pc))
        {
            MessageBox(NULL,TEXT("Контекст устройства не обнаружен"),TEXT("Ошибка 5"),MB_OK);
            exit(5);
        }
        break;
    case WM_DESTROY : PostQuitMessage(0);
        break;
    default: return DefWindowProc(decscr,message,wParam,lParam);
        return 0;
    }
    return static_cast<LRESULT>(0);
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.02.2014, 11:13
Помогаю со студенческими работами здесь

Только что начал изучать, однако не компилируется. Подскажите, пожалуйста в чем моя ошибка?
// 2_2010.cpp : main project file. // #include &quot;stdafx.h&quot; #include &lt;conio.h&gt; #include &lt;stdio.h&gt; int main() { int fahr ...

Начал изучать питон.Как правильно написать код отрисовки карты игры,похожей на цивилизацию с 2d графикой, на python?
Система для отрисовки игры и получения пользовательского ввода. Содержит методы: init(self) redraw(self, map: Map) -- вывод карты на экран

Начал изучать JS
прочитал в книге спецификации CSS и вспомнил молодость, скроллер в стиле Amiga: &lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt;...

Начал изучать С++
Я решил изучить С++ для этого значит скачал VS2010. Но я не могу понять эта реда позволяет конструировать формы в визуальном стиле? Ну...

начал изучать с++
начал учить с++, мне порекомендовали купить &quot;Полный справочник по С++&quot; Герберта Шилдта , купил, но вот в чем проблема - примеры программ...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru