Проблема с обработкой сообщения WM_PAINT
От: KingT  
Дата: 25.03.09 16:37
Оценка:
создал простое MDI приложение в котором есть окно для рисования графики.Для окна написал простой обработчик сообщения WM_PAINT.

Код C#

protected override void OnPaint(System.Windows.Forms.PaintEventArgs e)
{
int boarder = 10;
int Height = e.ClipRectangle.Height;
int Width = e.ClipRectangle.Width;

System.Console.Beep(4000,10);
System.Drawing.Graphics gr = e.Graphics;
Color color = Color.Red;
Pen pen = new Pen(color);

Rectangle rect = new Rectangle(boarder,boarder,Width-20,Height-20);
gr.DrawRectangle(pen,rect);
}

этот код просто рисует рамку в форме.Проблема в том что когда я начинаю менять размер окна то рамка не прорисовывается с учетом нового размера окна.Хотя сообщение WM_PAINT пирходит так как идет звуковой сигнал.Но если растянутое окно минимизировать а затем поднять то все прорисовывается.В чем проблема.Единственное что приходит на ум так то что при ресайзе
int Height = e.ClipRectangle.Height;
int Width = e.ClipRectangle.Width;
не получают новые размеры окна.А при минимайзе получают.
Как исправить?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.