Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.06.2013, 19:00   #1
lollollollol
Форумчанин
 
Регистрация: 23.03.2013
Сообщений: 218
По умолчанию Окно WinAPI, запрет развёртывания

Создаю окно на WinAPI, но не могу разобраться какой сообщение нужно отловить чтобы не позволить
1. Развернуть окно на весь экран
2. Изменить размер окна

Код:
function WindowProcLogin(Wnd, Msg, WParam, LParam: Integer): Integer; stdcall;
begin
  Result:=0;
  if (Msg=WM_DESTROY) then begin
    PostQuitMessage(0);
    exit;
  end;
  if (Msg={Какие сообщения отлавливать?}) then begin
    exit;
  end;
  Result := DefWindowProc(Wnd, Msg, WParam, LParam);       
end;
lollollollol вне форума Ответить с цитированием
Старый 04.06.2013, 19:41   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

Смотрите в сторону WM_SYSCOMMAND, SC_MAXIMIZE.
Насчет изменения размера - SC_SIZE но это не помешает менять размер окна мышкой.

Проще поменять стили окна, для того, чтоб нельзя было менять размер.
waleri вне форума Ответить с цитированием
Старый 04.06.2013, 19:46   #3
lollollollol
Форумчанин
 
Регистрация: 23.03.2013
Сообщений: 218
По умолчанию

Я пытался все эти команды обрабатывать, но не получилось добиться желаемого результата. Если не сложно, подскажи пожалуйста где именно, и какие стили нужно прописать?

Я так понимаю нужно работать с этой структурой:
Код:
  wc.cbSize := SizeOf(TWndClassEx);                                             // заполнение стpуктуpы wc
  wc.style := CS_VREDRAW or CS_HREDRAW;                                         //стиль (комбинация стилей) окна
  wc.lpfnWndProc := @WindowProcLogin;                                                //адрес оконной процедуры
  wc.cbClsExtra := 0;                                                           // выделенная память
  wc.cbWndExtra := 0;                                                           // выделенная память
  wc.hInstance := HInstance;                                                    // указатель на экземпляр программы
  wc.hIcon := LoadIcon(0, IDI_APPLICATION);                                     //указатель на пиктограмму окна
  wc.hCursor := LoadCursor(0, IDC_ARROW);                                       //курсор окна
  wc.hbrBackground := COLOR_WINDOW + 1;                                         //кисть, закрашивающая окно
  wc.lpszMenuName := nil;                                                       //имя меню класса окна
  wc.lpszClassName := ClassNameLogin;
lollollollol вне форума Ответить с цитированием
Старый 09.06.2013, 21:00   #4
Игорь С++
Пользователь
 
Регистрация: 23.06.2012
Сообщений: 19
По умолчанию

при создании окна сделай стиль так - WS_SYSMENU|WS_MINIMIZEBOX
Игорь С++ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Различие кода mfc и WinApi(mfc ручками набили, а WinApi автоматически с генерировался!! нужно явное отличие, не могу найти) Артём1991 Помощь студентам 0 25.03.2012 17:13
Запрет нажатия кнопки и запрет неправильного ввода данных De_Kurlzz Помощь студентам 1 15.06.2011 15:14
Delphi WinApi MDI окно Javaca Помощь студентам 1 25.04.2011 19:47
Свернуть окно на winapi bulldog5293 Общие вопросы Delphi 6 29.09.2010 19:54
Кто знает как через VBA заблокировать кнопку закрытия окна и развёртывания при Full Screen view mserkin Microsoft Office Excel 5 18.06.2010 12:29