Здравствуйте 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-программа или нечто другое?