Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
162 / 110 / 45
Регистрация: 30.11.2012
Сообщений: 1,184
1

Refrech() или что-то другое? Удалить нарисованный прямоугольник

04.12.2015, 09:27. Показов 1041. Ответов 2
Метки нет (Все метки)

Получаю hwnd окна которое находится под курсором, при этом обвожу это окно красной рамкой. При перемещении курсора на другое окно нужно удалять старую рамку естественно, по идее это делается функцией Refrech();, но я не пойму как в неё подать hwnd окна рамку которого нужна удалять.. или есть более простой способ?

Обвожу рамкой так:
C#
1
2
3
4
//RECT rect; GetWindowRect(hwnd, out rect); 
//Graphics newGraphics = Graphics.FromHwnd(hwnd);
//newGraphics.DrawRectangle(new Pen(Color.Red, 1), 0, 0, (rect.Right - (rect.Left - 2)), (rect.Bottom - (rect.Top - 2))); 
//newGraphics.Dispose();
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.12.2015, 09:27
Ответы с готовыми решениями:

Вписывание текста в нарисованный прямоугольник
Поздравляю всех с наступающими праздниками. На просторах нашего форума нашел тему с контролом...

Полупрозрачность элемента (убрать нарисованный прямоугольник)
Здравствуйте, возникла проблема. Есть примерно следующий код в обработчике события наведения...

Стереть прямоугольник нарисованный методом DrawRectangle
народ нужна ваша помощ GDIp.DrawRectangle(new Pen(Color.LightBlue, 2), ((i + 2) * 2), ((j + 2) *...

Как добавить в прямоугольник, нарисованный на канве, стрелочку?
Рисую прямоугольник на канве Fimage.Canvas.Brush.Color := clLtGray; ...

2
Эксперт .NETАвтор FAQ
9856 / 4810 / 1731
Регистрация: 11.01.2015
Сообщений: 5,990
Записей в блоге: 34
05.12.2015, 00:28 2
Nalik, Refresh перерисовывает только окна в текущем приложении.
Для перерисовки чужого окна нужно послать ему сообщение на перерисовку:
C#
1
2
3
4
5
6
7
8
9
10
11
12
public static class WindowsApi
{
    private const int WmPaint = 0x000F;
 
    [DllImport("User32.dll")]
    public static extern Int64 SendMessage(IntPtr hWnd, uint msg, IntPtr wParam, IntPtr lParam);
 
    public static void ForcePaint(IntPtr handle)
    {
        SendMessage(handle, WmPaint, IntPtr.Zero, IntPtr.Zero);
    }
}
Это если вы рисуете именно поверх окна. Если вы обводите вокруг окна, то перерисовывать нужно десктоп (для которого hwnd = 0)
1
162 / 110 / 45
Регистрация: 30.11.2012
Сообщений: 1,184
06.12.2015, 18:04  [ТС] 3
Цитата Сообщение от Storm23 Посмотреть сообщение
Для перерисовки чужого окна нужно послать ему сообщение на перерисовку:
Чет не работает. Даже если hwnd подавать 0. Но вот такой вариант работает:
C#
1
2
3
4
//SendMessage(del_hwnd, WmPaint, IntPtr.Zero, IntPtr.Zero);
InvalidateRect(del_hwnd, IntPtr.Zero, 1);
UpdateWindow(del_hwnd);
RedrawWindow(del_hwnd, IntPtr.Zero, IntPtr.Zero, 0x0400 | 0x0001 | 0x0100 | 0x0080);
Но подключать 3 лишних либы для перерисовки мне не доставляет(
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.12.2015, 18:04

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Пропадает нарисованный на Canvas прямоугольник и текст в клиент-серверном приложении
Доброго времени Вам. Вопросик, возник... Короче есть клиент он: 1. Делает скриншот экрана. 2....

Защитник Windows или Avast AntiVirus Free или что то другое
Добрый день !) У меня стоит Windows 10 и стоит встроенный антивирус "Защитник Windows" так вот...

Сохранение настроек приложения (В реестр или xml или что то другое?)
Вообщем нужно где то хранить настройки приложения. СРАЗУ ГОВОРЮ! В My.Settings на .net framework...

Не могу понять поломалась ли видеокарта или БП, или что-то другое. Дадите совет?
Запустил игру и во время нее комп завис. Перегрузил, загрузился, но уже выключился во меню игры....


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

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

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