Обработка WM_PAINT
От: kirina  
Дата: 24.03.02 13:06
Оценка:
Всем привет, у меня небольшая проблема, необходимо вывести строку
через wm_paint, что здесь не так, подскажите пожалуйста?
case WM_PAINT:{
hdc=BeginPaint(Win,&pc);
GetClientRect(Win,&rect);
SetBkColor(hdc,RGB(0,0,0));
ExtTextOut(hdc,0,0,ETO_OPAQUE,&rect,NULL,0,NULL);
SetTextColor(hdc,RGB(100,10,10));
TextOut(hdc,20,279,buff,3);
EndPaint(Win,&pc);
return TRUE;
}
case WM_LBUTTONDOWN:{
int x=LOWORD(lp); int y=HIWORD(lp);
if (((x<300) && (x>0)) && ((y<300) && (y>0))){
lstrcpy(buff,TEXT("ывоаывв"));
}
return TRUE;
}
Re: Обработка WM_PAINT
От: KaSA  
Дата: 24.03.02 13:12
Оценка:
Здравствуйте kirina, Вы писали:

K>Всем привет, у меня небольшая проблема, необходимо вывести строку

K>через wm_paint, что здесь не так, подскажите пожалуйста?
K>case WM_PAINT:{
K> hdc=BeginPaint(Win,&pc);
K> GetClientRect(Win,&rect);
K> SetBkColor(hdc,RGB(0,0,0));
K> ExtTextOut(hdc,0,0,ETO_OPAQUE,&rect,NULL,0,NULL);
K> SetTextColor(hdc,RGB(100,10,10));
K> TextOut(hdc,20,279,buff,3);
K> EndPaint(Win,&pc);
K> return TRUE;
K> }
K>case WM_LBUTTONDOWN:{
K> int x=LOWORD(lp); int y=HIWORD(lp);
K> if (((x<300) && (x>0)) && ((y<300) && (y>0))){
K> lstrcpy(buff,TEXT("ывоаывв"));
K>}
K>return TRUE;
K>}

А в чем, собственно, проблема-то? Поконкретнее можно?
Re[2]: Обработка WM_PAINT
От: kirina  
Дата: 24.03.02 13:46
Оценка:
Здравствуйте KaSA,
Проблема в том, что при нажатии кнопки мыши не вылазит текст на экран.
Re[3]: Обработка WM_PAINT
От: Holms США  
Дата: 24.03.02 13:50
Оценка:
Здравствуйте kirina, Вы писали:

K>Здравствуйте KaSA,

K>Проблема в том, что при нажатии кнопки мыши не вылазит текст на экран.

А ты попробуй вызвать функцию Invalidate в событии WM_LBUTTONDOWN.
The life is relative and reversible.
Re: Обработка WM_PAINT
От: KaSA  
Дата: 24.03.02 13:53
Оценка:
Здравствуйте kirina, Вы писали:

K>Всем привет, у меня небольшая проблема, необходимо вывести строку

K>через wm_paint, что здесь не так, подскажите пожалуйста?
K>case WM_PAINT:{
K> hdc=BeginPaint(Win,&pc);
K> GetClientRect(Win,&rect);
K> SetBkColor(hdc,RGB(0,0,0));
K> ExtTextOut(hdc,0,0,ETO_OPAQUE,&rect,NULL,0,NULL);
K> SetTextColor(hdc,RGB(100,10,10));
K> TextOut(hdc,20,279,buff,3);
K> EndPaint(Win,&pc);
K> return TRUE;
K> }
K>case WM_LBUTTONDOWN:{
K> int x=LOWORD(lp); int y=HIWORD(lp);
K> if (((x<300) && (x>0)) && ((y<300) && (y>0))){
K> lstrcpy(buff,TEXT("ывоаывв"));
K>}
K>return TRUE;
K>}

Ах вон оно что

А если так:
case WM_LBUTTONDOWN:
 int x=LOWORD(lp);    int y=HIWORD(lp);
if (((x<300) && (x>0)) && ((y<300) && (y>0))){
lstrcpy(buff,TEXT("ывоаывв"));
RedrawWindow(Win, NULL, NULL, RDW_ERASE | RDW_INVALIDATE);
break;
Re: Обработка WM_PAINT
От: kirina  
Дата: 24.03.02 14:47
Оценка:
Всем спасибо, особенно KASe, проблема решена!!!
Re[2]: Обработка WM_PAINT
От: VladD2 Российская Империя www.nemerle.org
Дата: 24.03.02 16:13
Оценка:
Здравствуйте kirina, Вы писали:

K>Всем спасибо, особенно KASe, проблема решена!!!


Вместо ветки со спасибами намного удобнее нажимать на кнопки оценки (в правом верхнем углу).
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.