Форум программистов, компьютерный форум CyberForum.ru

Delphi и WinAPI

Войти
Регистрация
Восстановить пароль
 
NIKENIT
0 / 0 / 0
Регистрация: 30.07.2014
Сообщений: 3
#1

Изменение размеров окна при перетаскивании - Delphi WinAPI

23.06.2016, 12:17. Просмотров 402. Ответов 1

Здравствуйте, мне нужна помощь.
Пытаюсь реализовать сворачивание окна приложения при перетаскивании, однако размер либо не изменяется(если стоит флаг), либо меняется постоянно с уменьшенного на оригинальный(если флаг moving_flag убрать). Изменение размеров окна кнопкой работает.
Вот код обработчика сообщений:


Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
function WindowProc(wnd: hwnd; msg: integer; wparam: wparam; lparam: lparam):lresult;stdcall;
begin
  case msg of
  WM_DESTROY:
    begin
      PostQuitMessage(0);
      Button := 0;
      label1 := 0;
      result := 0;
      Window := 0;
      exit;
    end;
  WM_COMMAND:
    begin
    case LoWord( wParam ) of
      1: MessageBox(Window,'Кнопка','Заголовок',0);
    end;
    end;
  WM_MOVING:
    begin
    if(moving_flag) <> true then
      begin
        GetWindowRect(Window, move_rect);
        SetWindowPos(Window, 0, 0, 0, move_rect.Width, 0, SWP_NOMOVE or SWP_NOZORDER);
        UpdateWindow(Window);
         moving_flag := true;
      end;
    end;
  else
    result := DefWindowProc(wnd,msg,wparam,lparam);
  end;
end;
и код самого окна:

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
test_window.cbSize := sizeof(test_window);
  test_window.style := CS_PARENTDC or CS_BYTEALIGNCLIENT;
  test_window.lpfnWndProc := @windowproc;//-указатель на процедуру
  test_window.hInstance :=  hInstance;
  test_window.hIcon := LoadIcon(hInstance,'MAINICON');
  test_window.hCursor := LoadCursor(0,IDC_ARROW);
  test_window.hbrBackground := COLOR_BTNFACE+1;
  //test_window.lpszMenuName := nil;
  test_window.lpszClassName := 'MyWindow';
  if windows.registerclassEx(test_window) = 0 then
  MessageBox(0, 'Ошибка регистрации', 'Заголовок', MB_OK); // регистрация окна в системе
 
  Window := CreateWindowEx(0, test_window.lpszClassName, 'Random text', WS_CAPTION or WS_MINIMIZEBOX or WS_SYSMENU, 300, 300, 350, 130, 0, 0, hInstance, nil);
 
  label1:=CreateWindow('static','Lable',WS_VISIBLE or WS_CHILD or BS_TEXT,6,25,330,40, Window,2,hInstance,nil);
  Button:=CreateWindow('button','Button',WS_VISIBLE or WS_CHILD,6,73,110,25, Window,1,hInstance,nil);
 
  ShowWindow(Window, SW_Show);
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.06.2016, 12:17     Изменение размеров окна при перетаскивании
Посмотрите здесь:

Hook, изменение окна - Delphi WinAPI
У меня есть программа, которая создаёт окно, caption которого 'Form1'. Используя хуки, мне нужно изменить это окно до того, как это окно...

Как задать размер стороннего окна при открытии и расположение от формы (справа/слева)? - Delphi WinAPI
Подскажите! Открываю некий скрипт в программе. Команду подаю из делфи и собственно открываю этот самый скрипт в нужной мне программе. Как...

Изменение положения окна при перетаскивании картинки - C#
Здравствуйте! На форме есть 1 картинка, которая растянута по ширине всего окна. В параметрах формы убрал рамки, так что его теперь не...

99% CPU при изменение размеров окна - C++ Qt
Создал новый проект QtQuick 2.5, ничего в нем не менял, сразу запустил и заметил что при изменение размеров окна нагрузка приложения на ЦП...

Крашится Qt Creator при изменение размеров окна - C++ Qt
При изменение размеров окна QtCreator'a (например, уменьшил его или свернул, а потом вернул на полный экран) программа крашится. Краш...

Изменение размеров активного окна при нажатии клавиш +, - - Free Pascal
в общем такая проблемка,сама программа чтобы создать элементы оконного интерфейса есть.а нужно еще Изменение размеров активного окна при...

Изменение размеров, координат линий при изменении размера окна - C# WPF
Дело состоит в том, что я рисую график с помощью Line в Canvas по точкам. Точек ооочень много (пару сотен тысяч). есть ли способ...

Изменение размера текстового поля при изменении размеров окна - JavaScript
Подскажите, плиз. Как можно сделать так, чтобы при изменении размеров окна броузера изменялся размер текствого поля(т.е. уменьшался,...

Изменение размеров компонентов в Делфи при увеличении окна на весь экран - Delphi
Здравствуйте,прошу вашей помощи,дело в том, что у меня такая проблема:я создал программу которая при выборе фигур отображает их,но есть...

Изменение размеров окна - OpenGL
Здравствуйте, пишу первое приложение на OpenGl и не могу разобраться: как сделать так, чтобы окно вывода меняло размер вместе с размером...

Изменение размеров окна - C++ WinAPI
Как контролировать изменение размера окна? Программа строит графики функций, я хочу сделать так, чтобы когда растягиваешь окно, оно...

Изменение размеров окна - Visual C++
Народ! Помогите, пожалуйста, кто чем сможет :) Простейший вариант: мне нужно, чтобы при нажатии на кнопку (к примеру, ОК) изменялись...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
NIKENIT
0 / 0 / 0
Регистрация: 30.07.2014
Сообщений: 3
24.06.2016, 12:54  [ТС]     Изменение размеров окна при перетаскивании #2
Ок, уже нашел решение проблемы, через редактирование lParam вместо использования функций.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru