Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > Проблема со стилями?


Автор: rainbow86 3.1.2006, 19:34
Встретил недавновот такую штуку, для того что бы избавиться от системного меню и области заголовка у окна:
Код

   int Style;
   Style = GetWindowLong(hWnd, GWL_STYLE);
   Style=Style || WS_CAPTION;
   Style=Style || WS_SYSMENU;
   SetWindowLong(hWnd, GWL_STYLE, Style);


Только чего-то она некорректно работает, т.е.все кнопки (закрыть,свернуть и т.д.) удаляются , а заголовок остается, и вообще странная запись:
Style=Style || WS_CAPTION;
Мож кто объяснит как она работает?
Окно со стилем WS_VISIBLE;

smile

Автор: _hunter 3.1.2006, 19:40
запись, действительно страная.
по-идее нужно что-то типа Style=Style ^ WS_CAPTION; ( или Style ^= WS_CAPTION; )
писать...

Автор: Aleksandor 3.1.2006, 23:34
А если вот так
Код

  style = GetWindowLong(hWnd, GWL_STYLE);
  style &= ~(WS_CAPTION | WS_SYSMENU);        
  SetWindowLong(hWnd, GWL_STYLE, style);  

Автор: rainbow86 4.1.2006, 17:27
Все равно остается синяя полоса наверху, с названием программы.
Подскажите как убрать???

smile

Автор: _hunter 4.1.2006, 18:06
добавь после SetWindowLong строку
SetWindowPos(Handle, 0, 0, 0, 0, 0, SWP_FRAMECHANGED | SWP_NOMOVE | SWP_NOOWNERZORDER | SWP_NOSIZE | SWP_NOZORDER);

Автор: rainbow86 5.1.2006, 12:50
Спасибо, получилось! smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)