Re[3]: Пожалуйста, объясните почему этот код не работает?
От: Alex Fedotov США  
Дата: 24.03.02 09:26
Оценка:
Здравствуйте Xenia, Вы писали:

X>>>Имеется такой вот простенький код:


X>>>void CBimapsView::OnButton32774() 
X>>>{
X>>>    CRgn rg;
X>>>//запомнили первоначальный
X>>>    GetWindowRgn(oldRegion);
X>>>    rg.CreateEllipticRgn(10,10,200,200);
X>>>//установили эллипсовидный
X>>>    SetWindowRgn(rg,TRUE);

AF>>Не работает, потому что вот в этот момент переменная rg 
AF>>уничтожается, а вместе с ней и регион, назначенный окну.
AF>>Очевидно, нужно сделать rg членом класса, как и oldRegion.


X>Делаю rg членом класса и все равно не работает, а вот между прочим если написать


X>>>void CBimapsView::OnButton32774() 
X>>>{
X>>>    CRgn rg;
X>>>//запомнили первоначальный
X>>>    GetWindowRgn(oldRegion);
X>>>    rg.CreateEllipticRgn(10,10,200,200);
X>>>//установили эллипсовидный
X>>>    ::SetWindowRgn(AfxGetMainWnd()->m_hWnd,rg,TRUE); т.е. используем API, то работает, хотя rg по прежнему локальная переменная. Но вот обратно окно все равно не восстанавливает


Так это разные окна. Одно окно, судя по названию — view, а другое — главное окно программы, m.е. frame.

Это MDI, SDI-программа или нечто другое?
-- Alex Fedotov
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.