Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C++ WinAPI Отправка файла на FTP сервер Всем добрый вечер У меня возникла проблема, очень нужна программа которая будет отправлять на FTP сервер файл C:\\1.txt Перерыл весь интернет не нашел не чего или только не рабочие программы очень нужна программа которая будет отправлять на FTP сервер файл попробуйте FileZilla https://www.cyberforum.ru/ win-api/ thread1361948.html C++ WinAPI Нужно написать программу Доброго времени суток уважаемые форумчане. Нужно написать Бекдор. С++, на win xp. Стучите в жабу Правила Форума, 5.7 Запрещено создание и распространение вредоносного ПО, вирусов, кряков и взлома... https://www.cyberforum.ru/ win-api/ thread1362219.html
Сравнение скорости считывания из файла в синхронном и асинхронном режиме C++ WinAPI
Доброго времени суток! Дана задача: записать файл случайных чисел размером 50 Мб, далее считать данные из файла в синхронном и асинхронном режиме, измерить время считывания и сравнить. У меня... Вот один из проблемных участков кода: void ReadFAsynh() { // ... while(ov.Offset<=TEST_BYTE) { ReadFile(hFile,(LPVOID)&lpBuff,sizeof(DWORD),&maxBuff,...
Что должно быть в переменных, чтобы нажатие срабатывало? C++ WinAPI
IDC_LIST1 IDC_GAS IDC_OPEN IDC_CLOSE IDC_STOP IDD_DIALOG1 подскажите, что должно быть в этих переменных, чтобы студия не писала "идентификатор неопределен"? я так понял, автор кода пропустил... Там должны быть идентификаторы элементов управления диалогового окна (обычно).
C++ WinAPI Как определить что последовательный порт в системе является виртуальным?
Добрый день. Есть ли возможность определить, что порт в системе является виртуальным, а не физическим? Т.е. создан с помощью какой-либо программы эмулятора, например VSPE (Virtual Serial Port...
C++ WinAPI MessageBox, в зависимости от результата (YesNo) выполнить определенное действие
Ребят у меня есть MessageBox и мне надо чтобы если я нажимал Yes то 1 действие а если No то 2 TwerTrue, здравствуйте.int res = MessageBox(hwnd, text, caption, MB_YESNO); if(res == IDYES) { // ...что-то делаем... когда YES } else { // ...что-то не делаем... когда NO }
C++ WinAPI Service + SetWinEventHook
Здравствуйте. Первая попытка без кода... Вдруг, кто уже сталкивался... Написал интерактивную службу (с флагом SERVICE_INTERACTIVE_PROCESS при создании). Подписываюсь на все События в системе ... Обсуждалось неоднократно, поищите по форуму. Флаг SERVICE_INTERACTIVE_PROCESS работает только на системах до Windows Vista и только для первого залогиненного пользователя. На Windows Vista и...
Как правильно нарисовать изображение в фоне программы C++ WinAPI
Вобщем рисую картинку на фоне, и она рисуется искажённой, как нужно сделать правильно, чтобы картинка неарисовалась точь в точь как в оригинале? на скрине оригинал и рядом то как оно отображается в... Чтобы картинка не была искаженной, нужно загружать и работать с картинками другого формата
Кейлоггер C++ WinAPI
Привет всем, практически дописал кейлоггер(взял из одного примера и переделал) вот код: Тут мы ищем нужное нам окошко и выставляем раскладку(имя окошка закрыл XXXXXX) int WINAPI WinMain(HINSTANCE... Закрыто. Читаем правила форума.
C++ WinAPI Права администратора для потока https://www.cyberforum.ru/ win-api/ thread1361518.html
У меня такой вопрос: можно запросить права администратора для отдельного потока(именно к потоку с запуском функции), а не для всей программы?, если это возможно подскажите как, если нет то подскажите... Такие варианты: 1. Использовать COM Elevation Moniker. В этом случае все нужные функции, которые требуют права администратора, оформляются в виде COM-объекта. Далее COM-объект по запросу...
DLL крашит приложение при создании потока (CreateThread) C++ WinAPI
Здрасьте. Внедряю свою дллку в любой процесс и он крашится с моего потока. #include <Windows.h> void Main(){ MessageBox(0, "Hello!", 0, MB_OK | MB_ICONINFORMATION); } bool... Return value When the system calls the DllMain function with the DLL_PROCESS_ATTACH value, the function returns TRUE if it succeeds or FALSE if initialization fails. If the return value is FALSE...
C++ WinAPI Переадресация STDOUT/IN https://www.cyberforum.ru/ win-api/ thread1362732.html
Вот есть решение https://msdn.microsoft.com/en-us/library/windows/desktop/ms682499(v=vs.85).aspx Но оно какое то не универсальное... т.е чтобы отправить/получить что-то нужно использовать... А если у меня куча выводов с использованием cout ? Дочерний процесс не заметит подмены. cout будет выводить в файл/пайп/etc вместо консоли. Ничего заменят не надо.
120 / 142 / 46
Регистрация: 31.10.2014
Сообщений: 721
Записей в блоге: 1
06.02.2015, 09:04 0

Мерцание при смене вкладок - C++ WinAPI - Ответ 7193091

06.02.2015, 09:04. Показов 1236. Ответов 4
Метки (Все метки)

Лучший ответ Сообщение было отмечено mh-coder как решение

Решение

Держи пример №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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
//---------------------------------------------------------------------------
 
#include <windows.h>
#include <tchar.h>
#include <gdiplus.h>
#include <commctrl.h>
#pragma comment(lib, "gdiplus.lib")
 
using namespace Gdiplus;
 
HINSTANCE hInst;
BITMAPINFO BMI;
ULONG_PTR gdiplusToken;
UINT ImgHeight, ImgWidth;
Image *pImage;
 
LRESULT CALLBACK  WndProc(HWND, UINT, WPARAM, LPARAM);
 
WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)
{
 
    GdiplusStartupInput gdiplusStartupInput;
    gdiplusStartupInput.GdiplusVersion = 1;
    GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);
 
    WNDCLASSEX wcex;
    wcex.cbSize         = sizeof(WNDCLASSEX);
    wcex.style          = CS_HREDRAW | CS_VREDRAW;
    wcex.lpfnWndProc    = (WNDPROC)WndProc;
    wcex.cbClsExtra     = 0;
    wcex.cbWndExtra     = 0;
    wcex.hInstance      = hInstance;
    wcex.hIcon          = NULL;
    wcex.hCursor        = LoadCursor(NULL, IDC_ARROW);
    wcex.hbrBackground  = (HBRUSH)(COLOR_BTNSHADOW);
    wcex.lpszMenuName   = NULL;
    wcex.lpszClassName  = _T("MyClass");
    wcex.hIconSm        = NULL;
 
    RegisterClassEx(&wcex);
 
    InitCommonControls();
 
    pImage = Image::FromFile(_T("mspaint.png"), TRUE);
    if(!pImage) return 0;
 
    ImgHeight = pImage->GetHeight();
    ImgWidth  = pImage->GetWidth();
 
    BMI.bmiHeader.biSize        = sizeof(BMI.bmiHeader);
    BMI.bmiHeader.biBitCount    = 32;
    BMI.bmiHeader.biHeight      = ImgHeight;
    BMI.bmiHeader.biWidth       = ImgWidth;
    BMI.bmiHeader.biPlanes      = 1;
    BMI.bmiHeader.biSizeImage   = ImgHeight * ImgWidth * (BMI.bmiHeader.biBitCount / 8);
 
 
    HWND hWndMain = CreateWindowEx(0, //WS_EX_LAYERED | WS_EX_TOPMOST | WS_EX_TOOLWINDOW,
                                        wcex.lpszClassName,
                                        _T("Window as a picture"),
                                        WS_POPUP,
                                        CW_USEDEFAULT,
                                        CW_USEDEFAULT,
                                        ImgWidth,
                                        ImgHeight,
                                        0,
                                        NULL,
                                        hInstance,
                                        NULL);
 
 
    ShowWindow(hWndMain, SW_SHOW);
    UpdateWindow(hWndMain);
 
    MSG msg;
    while(GetMessage(&msg, NULL, 0, 0))
    {
        TranslateMessage(&msg);
        DispatchMessage (&msg);
    }
 
    GdiplusShutdown(gdiplusToken);
 
    return (int)msg.wParam;
}
 
 
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    switch (message)
    {
        case WM_COMMAND:
        {
        }break;
 
        case WM_CREATE:
        {
 
 
            return 0;
        }
 
        case WM_PAINT:
        {
            PAINTSTRUCT ps;
            HDC hDC = BeginPaint(hWnd,&ps);
            Graphics graphics(hDC);
            graphics.DrawImage(pImage, 0.f, 0.f, (float)ImgWidth, (float)ImgHeight);
            graphics.ReleaseHDC(hDC);
            EndPaint(hWnd,&ps);
            return 0;
        }
 
        case WM_RBUTTONDOWN:
        {
            DestroyWindow(hWnd);
        }break;
 
        case WM_LBUTTONDOWN:
        {
            ReleaseCapture();
            SendMessage(hWnd, WM_SYSCOMMAND, SC_MOVE | HTCAPTION, 0);
        }break;
 
        case WM_DESTROY:
        {
            PostQuitMessage(0);
        }break;
 
     }
 
     return DefWindowProc(hWnd, message, wParam, lParam);
}
Добавлено через 5 минут
Пример №2

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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
//---------------------------------------------------------------------------
 
#include <windows.h>
#include <tchar.h>
#include <gdiplus.h>
#include <commctrl.h>
#pragma comment(lib, "gdiplus.lib")
 
using namespace Gdiplus;
 
HINSTANCE hInst;
BITMAPINFO BMI;
ULONG_PTR gdiplusToken;
UINT ImgHeight, ImgWidth;
Image *pImage;
HDC hdcWnd, hdcMem;
HBITMAP hBitmap;
HBITMAP hOldObject;
 
LRESULT CALLBACK  WndProc(HWND, UINT, WPARAM, LPARAM);
 
WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)
{
 
    GdiplusStartupInput gdiplusStartupInput;
    gdiplusStartupInput.GdiplusVersion = 1;
    GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);
 
    WNDCLASSEX wcex;
    wcex.cbSize         = sizeof(WNDCLASSEX);
    wcex.style          = CS_HREDRAW | CS_VREDRAW;
    wcex.lpfnWndProc    = (WNDPROC)WndProc;
    wcex.cbClsExtra     = 0;
    wcex.cbWndExtra     = 0;
    wcex.hInstance      = hInstance;
    wcex.hIcon          = NULL;
    wcex.hCursor        = LoadCursor(NULL, IDC_ARROW);
    wcex.hbrBackground  = (HBRUSH)(COLOR_BTNSHADOW);
    wcex.lpszMenuName   = NULL;
    wcex.lpszClassName  = _T("MyClass");
    wcex.hIconSm        = NULL;
 
    RegisterClassEx(&wcex);
 
    InitCommonControls();
 
    pImage = Image::FromFile(_T("mspaint.png"), TRUE);
    if(!pImage) return 0;
 
    ImgHeight = pImage->GetHeight();
    ImgWidth  = pImage->GetWidth();
 
    BMI.bmiHeader.biSize        = sizeof(BMI.bmiHeader);
    BMI.bmiHeader.biBitCount    = 32;
    BMI.bmiHeader.biHeight      = ImgHeight;
    BMI.bmiHeader.biWidth       = ImgWidth;
    BMI.bmiHeader.biPlanes      = 1;
    BMI.bmiHeader.biSizeImage   = ImgHeight * ImgWidth * (BMI.bmiHeader.biBitCount / 8);
 
 
    HWND hWndMain = CreateWindowEx(0, //WS_EX_LAYERED | WS_EX_TOPMOST | WS_EX_TOOLWINDOW,
                                        wcex.lpszClassName,
                                        _T("Window as a picture"),
                                        WS_POPUP,
                                        CW_USEDEFAULT,
                                        CW_USEDEFAULT,
                                        ImgWidth,
                                        ImgHeight,
                                        0,
                                        NULL,
                                        hInstance,
                                        NULL);
 
 
    ShowWindow(hWndMain, SW_SHOW);
    UpdateWindow(hWndMain);
 
    MSG msg;
    while(GetMessage(&msg, NULL, 0, 0))
    {
        TranslateMessage(&msg);
        DispatchMessage (&msg);
    }
 
    GdiplusShutdown(gdiplusToken);
 
    return (int)msg.wParam;
}
 
 
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    switch (message)
    {
        case WM_COMMAND:
        {
        }break;
 
        case WM_CREATE:
        {
 
 
 
            hdcWnd  = GetDC(hWnd);
            hdcMem = CreateCompatibleDC(hdcWnd);
 
            hBitmap         = CreateDIBSection(hdcMem, &BMI, DIB_RGB_COLORS, NULL, 0, 0);
            hOldObject     = (HBITMAP)SelectObject(hdcMem, hBitmap);
 
 
            Graphics graphics(hdcMem);
 
            graphics.DrawImage(pImage, 0.f, 0.f, (float)ImgWidth, (float)ImgHeight);
 
            graphics.ReleaseHDC(hdcMem);
 
 
 
            return 0;
        }
 
        case WM_PAINT:
        {
            PAINTSTRUCT ps;
            HDC hDC = BeginPaint(hWnd,&ps);
            BitBlt(hDC, 0, 0, ImgWidth, ImgHeight, hdcMem, 0, 0, SRCCOPY);
            EndPaint(hWnd,&ps);
            return 0;
        }
 
        case WM_RBUTTONDOWN:
        {
            DestroyWindow(hWnd);
        }break;
 
        case WM_LBUTTONDOWN:
        {
            ReleaseCapture();
            SendMessage(hWnd, WM_SYSCOMMAND, SC_MOVE | HTCAPTION, 0);
        }break;
 
        case WM_DESTROY:
        {
            SelectObject(hdcMem, hOldObject);
            DeleteObject(hBitmap);
            DeleteDC(hdcMem);
            ReleaseDC(hWnd, hdcWnd);
            PostQuitMessage(0);
        }break;
 
     }
 
     return DefWindowProc(hWnd, message, wParam, lParam);
}


Вернуться к обсуждению:
Мерцание при смене вкладок C++ WinAPI
1
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.02.2015, 09:04
Готовые ответы и решения:

Как убрать анимацию при смене вкладок?
есть меню с вкладками, которые меняют содержимое меню при нажатии + некая анимация происходящего. так вот я хочу сделать чтобы все менялось...

Мерцание при перерисовке Controla в диалоге при resize.
В окно со стилем WS_OVERLAPPEDWINDOW добавлен control. При изменении размера окна пользователем control получает wm_paint и дико...

Ошибка при скрытии объектов при смене значения ComboBox
procedure TForm1.ComboBox2Change(Sender: TObject); begin case combobox2.ItemIndex of 0: DBGrid3.Visible:=true; // ХОЧУ ЗДЕСЬ...

4
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.02.2015, 09:04
Помогаю со студенческими работами здесь

При замене процессора винда не грузится, при смене памяти комп не включается
почитал схожие темы на форуме, ответа не нашел, поэтому моя ситуация: решил сменить процессор. Был Core 2 Duo E7500, стал Core 2 Quad...

Мерцание при заливке
Приветствую всех. Подскажите пожалуйста, чего я не дописал. Создаю свой итем,кидаю его на сцену, но при заливке - начинается мерцание. ...

Мерцание при Invalidate
(MFC) Вызываю в OnMouseMove MoveWindow(SetWindowPos (отключаю перерисовку)) и Invalidate Происходит мерцание, как избавиться? ...

Мерцание при перерисовке
Доброго времени суток. Есть несколько элементов(прямоугольников). При перетаскивании их мышью каждый раз все изображения перерисовываются....

Мерцание при загрузке
Здравствуйте! Проблема в след. (Видео - del]) При загрузке системы монитор начинает мерцать. Так продолжается несколько секунд, после...

0
Новые блоги и статьи
Winforstrap или красявый дизайн своими руками на HTML+JS+Winform­s
anomal6 04.03.2025
Сидел тут вечером ковырял проект на MAUI, и как же глупо создаются пакеты MSIX и система обновлений пакета публикации, но не об этом. Бывает нужен современный дизайн программы а писать на MAUI,. . .
Формат данных для симуляции физики, посредством распространённы­­­­­­­х не обученных моделей.
Hrethgir 04.03.2025
Что-то как-то снова потерялось, зато катангенсы закатангесились в одном сообщении. На днях писал, что планирую для работы апгрейдить (на этот раз удачно) девайс для работы (конкретно - здоровья для,. . .
Концепция variadic
CoderHuligan 04.03.2025
Мне не очень нравится (а кому это нравится?) что у нас есть отдельно компилятор, отдельно линковщик, причем со своим собственным командным языком. При этом усложнении надо знать помимо языка. . .
Java Record или Kotlin Data Class: что лучше для неизменяемых данных
Wired 04.03.2025
Java Record и Kotlin Data Class — два мощных инструмента для обуздания неизменяемых структур данных, каждый со своим уникальным подходом к решению этой задачи. История их появления весьма. . .
Создание производительны­­­х API с Java и gRPC
Wired 04.03.2025
В мире микросервисной разработки вопрос производительности часто становится краеугольным камнем. И хотя REST API давно завоевал сердца разработчиков своей простотой и интуитивностью, при высоких. . .
Что нового в JDK 24
Wired 04.03.2025
JDK 24 — это настоящий прорыв в эволюции Java, который кардинально меняет правила игры. В этом релизе разработчики Oracle наконец-то довели до ума множество критически важных улучшений в. . .
Разработка блокчейн с использованием Java: смарт-контракты и dApp
Wired 04.03.2025
Погружаясь в мир блокчейн-разработки на Java, разработчик получает доступ к внушительному арсеналу инструментов. В отличие от Solidity, который "заперт" в экосистеме Ethereum, Java предоставляет. . .
WebAssembly в Kubernetes
stackOverflow 03.03.2025
В современной экосистеме облачных технологий WebAssembly (Wasm) становится все более значимым компонентом, предлагая уникальный подход к выполнению кода в распределенных системах. Эта технология. . .
GitHub Actions или Jenkins: Выбираем CI/CD платформу
stackOverflow 03.03.2025
Непрерывная интеграция и развертывание (CI/ CD) изменили подход к разработке программного обеспечения, превратив его в бесшовный процесс от написания кода до развертывания в продакшн. GitHub Actions и. . .
Автоматизация тестирования Pull Request в Kubernetes: Интеграция с GitHub Actions и GKE
stackOverflow 03.03.2025
Масштабные проекты с использованием Kubernetes требуют надежной системы тестирования изменений перед их внедрением в продакшн-среду. Традиционный подход с ручной проверкой Pull Request не справляется. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru