Модераторы: feodorv, GremlinProg, xvr, Fixin

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Изменение размеров окна 
:(
    Опции темы
Mihhail
Дата 20.12.2007, 16:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 96
Регистрация: 13.9.2007

Репутация: 5
Всего: 9



Код
case WM_ENTERSIZEMOVE:
   GetCursorPos( &curpos1 );
   GetWindowRect( hwnd, &GrRc1 );
   break;

case WM_SIZING:{
   GetCursorPos( &curpos2 );
   memcpy( &GrRc, (LPRECT)lparam, sizeof(RECT) );

   H = GrRc.bottom - GrRc.top;

   //Фиксированый размер по высоте
   if( H > MAXH ){
      if( curpos2.y > curpos1.y ) GrRc.bottom = GrRc.top + MAXH;
         else GrRc.top = GrRc.bottom - MAXH;
      }
   if( H < MAXH ){
      if( curpos2.y < curpos1.y ) GrRc.bottom = GrRc.top + MAXH;
         else GrRc.top = GrRc.bottom - MAXH;
      }

   //При каждом изменении ширины граница смещается на N
   K = curpos2.x - curpos1.x;
   if( K ){
      if( GrRc1.left != GrRc.left ){
         if( K < 0 ){
            GrRc.left = GrRc1.left - N;
            if( GrRc.left < 0 ) GrRc.left = 0;
            }
            else{
               GrRc.left = GrRc1.left + N;
               if( GrRc.left > GrRc1.right - MINW ) GrRc.left = GrRc1.right - MINW;
               }

         curpos1.x = GrRc.left;
         curpos2.x = GrRc.left;
         GrRc1.left = GrRc.left;
         }

      if( GrRc1.right != GrRc.right ){
         if( K < 0 ){
            GrRc.right = GrRc1.right - N;
            if( GrRc.right < GrRc1.left + MINW ) GrRc.right = GrRc1.left + MINW;
            }
            else{
               GrRc.right = GrRc1.right + N;
               if( GrRc.right > 1024 ) GrRc.right = 1024;
               }

         curpos1.x = GrRc.right;
         curpos2.x = GrRc.right;
         GrRc1.right = GrRc.right;
         }
      }
   SetCursorPos( curpos2.x, curpos2.y );

   memcpy((LPRECT)lparam, &GrRc, sizeof(RECT));
   } return (1);


PM MAIL WWW   Вверх
WM_SASHA
Дата 30.1.2008, 09:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 12.4.2007
Где: Узбекистан г.Ташк ент

Репутация: нет
Всего: нет



ой извеняюсь, не туда запостил

Это сообщение отредактировал(а) WM_SASHA - 30.1.2008, 09:55
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.0389 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.