Форум программистов, компьютерный форум CyberForum.ru

Код не выполняется в одном месте, но выполняется в другом - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ множественный выбор http://www.cyberforum.ru/cpp-beginners/thread750108.html
Добрый день, ув. форумчани. Не подскажите как с помощью оператора switch сделать множественный выбор, то есть я что-то выбрал и мне снова предлагают выбрать из вариантов, пока не будет введен специальный символ. Могу сделать просто выбор, но как предложить повторный ввод не знаю.
C++ Операция сравнения пошла не так, как хотелось бы Пользователь вводит значения, сохраняющиеся в класс Product; программа запрашивает слово для поиска и при совпадение только-что введенного слова и введенных в начале работы - выводит имеющуюся информацию. Все бы хорошо, но ни strcmp, ни strcmp, ни обычное сравнивание не сработали. Хоть бы я использовал одно слово, одну буквы или даже цифру - оно пишет, что совпадений не найдено. Должно быть,... http://www.cyberforum.ru/cpp-beginners/thread750102.html
C++ Воссоздать дерево из ин ордера и пост ордера . Не пойму в чем ошибка
Помогите пожалуйста разобраться. Рекурсивная функция должна возвращать дерево, а возвращает только часть. http://pastebin.com/KaBkE4NB Спасибо Добавлено через 32 секунды Бинарное дерево. Элементы уникальные, все разные.
C++ конструктор копии
Мне кажется что здесь также должен вызывать конструктор копия при возврате объекта obj из функции Get()! Разве нет? #include <iostream.h> #include <time.h> class myClass{ public: myClass(){cout<<"Norm inicialized"<<endl;} myClass(const myClass &obj){cout<<"Kopia inicialized"<<endl;} };
C++ Как выполнить задание (написать две функции getAllDivisors и getLowestDivisor) http://www.cyberforum.ru/cpp-beginners/thread750088.html
Надо написать две функции getAllDivisors и getLowestDivisor. Функция main должна вызывать функцию getAllDivisors, которая в свою очередь имеет цикл: функция getAllDivisors повторно вызывает функцию getLowestDivisor, каждый раз заменяя значение n результатом выражения n / i, где i - это найденный делитель. Если возвращается само число n, значит, число является простым и цикл должен быть прекращен....
C++ Какой курсор отображается? Здравствуйте, мне нужно узнать какой курсор отображается в системе в данный момент? CBuilder CURSORINFO pc; pc.cbSize = sizeof(CURSORINFO); GetCursorInfo(&pc); DrawIcon(GetDC(Form1->Handle), 0, 0, pc.hCursor); На форме рисуется курсор, мне же нужно просто узнать его название, что бы потом выполнить определенное действие. Мельком смотрел на структуры в MSDN, но так ничего и не нашел. подробнее

Показать сообщение отдельно
vlad892
0 / 0 / 0
Регистрация: 30.12.2012
Сообщений: 6
30.12.2012, 17:04     Код не выполняется в одном месте, но выполняется в другом
Вот код процедуры:
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
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    PAINTSTRUCT ps;
    HDC hdc;
    static LARGE_INTEGER pli;
    static LPDWORD drd;
 
    
    static HANDLE fl = CreateFile(L"qs.txt",GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ, 0, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0); 
    static char bf[4000];
    char szBuffer[40];
 
    static int pos = -1; // символ не найден
 
    switch (message)
    {
    case WM_CREATE:
        GetFileSizeEx(fl, &pli);
        ReadFile(fl, &bf, 100, drd, 0);
        
            
        for ( int i = 0; i < pli.QuadPart; i++ )
        if ( bf[i] == 'И' )
        {
            pos = i;
            break;
        }
        
        break;
    case WM_PAINT:
        hdc = BeginPaint(hWnd, &ps);
        TextOutA(hdc, 20, 20, /*bf,pli.QuadPart);*/ szBuffer,wsprintfA(szBuffer, "%d", pos));
        EndPaint(hWnd, &ps);
        break;
    case WM_DESTROY:
        PostQuitMessage(0);
        break;
    default:
        return DefWindowProc(hWnd, message, wParam, lParam);
    }
    return 0;
}
Фрагмент
C++
1
2
3
4
5
6
for ( int i = 0; i < pli.QuadPart; i++ )
        if ( bf[i] == 'И' )
        {
            pos = i;
            break;
        }
Выполняется в событии WM_PAINT, но не выполняется в WM_CREATE. Почему?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 04:31. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru