Не меняются иконки C++

198
05 апреля 2019, 20:40

Вообщем вот фрагмент кода, код себя ведет не очень понятно, все как бы хорошо, но иконка не меняется при наступлении 19 часов(а так должно быть)

#include <windows.h>
#include <thread>
bool night=true;
LRESULT CALLBACK WndProc(HWND window, UINT message, WPARAM wParam, LPARAM lParam)
{
    switch (message)
    {
    case WM_USER:
        if (lParam == WM_RBUTTONDOWN)
            if (MessageBox(NULL, TEXT("Завершить работу?"), TEXT("Ы"), MB_YESNO) == IDYES)
                DestroyWindow(window);
        break;
    case WM_DESTROY:
        PostQuitMessage(0);
        break;
    default:
        return DefWindowProc(window, message, wParam, lParam);
    }
    return 0;
}
void Timing() 
{
    SYSTEMTIME time;
    GetLocalTime(&time);
    int Hour = 19 - time.wHour; 
    int Min = 60 - time.wMinute; 
    if (Hour <= 0 || Hour >= 13) 
    {
        SetBrightness(NULL, 90); 
        night = false;
    }
    else
    {
        --Hour;
        Hour = Hour * 360000; 
        Min = Min * 6000; 
        int sleep = Min + Hour;
        Sleep(sleep); 
        SetBrightness(NULL, 90); 
        night = false;
    }
}
int WINAPI WinMain(HINSTANCE instance, HINSTANCE, LPTSTR, int)
{
    std::thread thr(Timing); 
    thr.detach();
MSG message;
    while (GetMessage(&message, NULL, 0, 0))
    {
        TranslateMessage(&message);
        DispatchMessage(&message);
        if (night = false)
        {
            Shell_NotifyIcon(NIM_DELETE, &Icon);
            Icon.hIcon = (HICON)LoadImage(NULL, TEXT("night.ico"), IMAGE_ICON, 32, 32, LR_LOADFROMFILE);
            Icon.uFlags = NIF_MESSAGE | NIF_ICON;
            Shell_NotifyIcon(NIM_ADD, &Icon);
        }
        else
        {
            Shell_NotifyIcon(NIM_DELETE, &Icon);
            Icon.hIcon = (HICON)LoadImage(NULL, TEXT("day.ico"), IMAGE_ICON, 32, 32, LR_LOADFROMFILE);
            Icon.uFlags = NIF_MESSAGE | NIF_ICON;
            Shell_NotifyIcon(NIM_ADD, &Icon);
        }
    }
Answer 1

Как минимум замените

if (night = false)

на

if (!night)

да и переменную night следовало бы объявить как volatile..

READ ALSO
Как подключить cURL к Visual Studio?

Как подключить cURL к Visual Studio?

Я скачал архив с сайта, к сделал всё как на видео но мне пишет,

192
Как обвернуть OpenGL на С++ в GNU/Linux

Как обвернуть OpenGL на С++ в GNU/Linux

Что я делаю не так, это очень примитивный вопрос, который вы слышите уже не первый разА я хочу спросить, как исправить ошибки в коде, чтобы...

214
Использование Firebase (databasE) в c++

Использование Firebase (databasE) в c++

Всем приветПытаюсь найти хоть какой-нибудь способ использования Firabase'а в C++

215