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

AF>Здравствуйте Xenia, Вы писали:


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


AF>
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.
AF>

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

AF>
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 по прежнему локальная переменная. Но вот обратно окно все равно не восстанавливает
AF>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.