Форум программистов, компьютерный форум, киберфорум
Наши страницы
Assembler, MASM, TASM
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
assch
2 / 2 / 0
Регистрация: 13.09.2010
Сообщений: 46
1

Перерисовка окна при помощи InvalidateRect

01.07.2011, 19:35. Просмотров 935. Ответов 2
Метки нет (Все метки)

Не подскажете как перерисовать окно.
А именно окошко которое как видно в коде создаётся в приложении при нажатии
на левую кнопку мышки (WM_LBUTTONDOWN) которое в свою очередь показывает картинку
файл которого например как у меня в коде перетаскивается мышкой в окно приложения
при помощи команды (WM_DROPFILES)
Картинка показывается нормально только она не перерисованная, то есть при некоторых
обстоятельствах (например зону картинки закроет другое окно) картинка исчезает.
То есть зону картинки нужно перерисовать. Насколько я знаю это делается например
с помощью фукнкции InvalidateRect.
А вот как именно с этим у меня тормоза
Подскажите пожалуйста.

Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
.if uMsg == WM_DROPFILES
 
invoke DragQueryFile,wParam,0,addr buffer,sizeof buffer
invoke MultiByteToWideChar,0,0,addr buffer,-1,addr Unicod,addr Char
invoke GdipLoadImageFromFile,addr Unicod, addr hImag
invoke GdipGetImageWidth, hImag, addr sWidth
invoke GdipGetImageHeight, hImag, addr sHeight
 
.elseif uMsg == WM_LBUTTONDOWN
 
invoke  DestroyWindow,hGif
invoke CreateWindowEx,0,addr Static,0,WS_CHILD,50,50,sWidth,sHeight,hWinFun,0,0,0
mov hGif,eax
invoke ShowWindow,hGif,SW_SHOWNORMAL
invoke UpdateWindow,hGif
 
invoke GetDC, hGif
mov hDC, eax
invoke GdipCreateFromHDC, hDC, addr pGraphics
invoke GdipDrawImage, pGraphics,hImag,0,0
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.07.2011, 19:35
Ответы с готовыми решениями:

Компиляция при помощи NASM
Я только-только начинающий, почитал некоторое количество материала по ассемблеру, очень захотелось...

[NASM] Вывод звука при помощи escape последовательности
Доброго времени суток! Пишу проигрыватель для азбуки морзе на ассемблере (nasm под ubuntu)....

Вычислить n = 1+2+4+8+…+2^10 при помощи цикла
Вычислить: n= 1+2+4+8+…+210 (с шагом +2) c помощью цикла. В голове я понимаю как сделать, а руки...

Преобразования двух чисел при помощи логических операторов
Помогите пожалуйста. Даны 2 числа в двоичном виде. Первое число умножить на 16 и в полученном...

[NASM] Вычислить выражение и вывести результат при помощи макроса
Написать на Asembler NASM программу которая вычисляет: x = b * c + 36 (где b, c - произвольные...

2
murderer
3321 / 1467 / 134
Регистрация: 06.10.2010
Сообщений: 3,228
01.07.2011, 19:45 2
При помощи SetWindowLong задай оконную процедуру для этого окна. Перерисовывай в обработчике сообщения WM_PAINT.
1
assch
2 / 2 / 0
Регистрация: 13.09.2010
Сообщений: 46
01.07.2011, 21:37  [ТС] 3
Спасибо за подсказку
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.07.2011, 21:37

[NASM] Вычислить выражение и вывести результат при помощи макроса
Задали написать уравнение x=b*c+36 b,c-любые числа, что инициализированы, х-не инициализирована и...

Как заполнить массив MasB при помощи прямой адресации с индексированием?
Как заполнить массив MasB при помощи прямой адресации с индексированием? Лекций в универе...

Перерисовка окна и InvalidateRect
Здравствуйте, только учусь и пишу программу тест. Встал в начале. Создаю 2 кнопки, они работают,...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru