Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
1

Глючит сохранение размеров главного окна

03.11.2014, 11:14. Показов 481. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
C++
1
2
3
4
5
6
7
8
9
10
11
 switch (Message)
 {
  case WM_SIZE   : Options.SetMainWindowSize(LOWORD(Second), HIWORD(Second)+22);
  break;
  case WM_MOVE   : Options.SetMainWindowPosition(HIWORD(Second)-22, LOWORD(Second));
  break;
  case WM_DESTROY: Log<<"<Quite>By user command</Quite>"<<std::endl;
                   PostQuitMessage(0);
  break;
 }
 return DefWindowProc(Window, Message, First, Second);
,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void
TOptions::             SetMainWindowSize        (      WORD       Width      ,
                                                       WORD       Height     )
{
 MainWindowWidth =Width;
 MainWindowHeight=Height;
 Save();
}
//-------------------------------------------------------------------------------------------------
void
TOptions::             SetMainWindowPosition    (      WORD       Top        ,
                                                       WORD       Left       )
{
 MainWindowTop =Top;
 MainWindowLeft=Left;
 Save();
}
,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
WORD
TOptions::             GetMainWindowWidth       (                            )
{
 return MainWindowWidth;
}
//-------------------------------------------------------------------------------------------------
WORD
TOptions::             GetMainWindowHeight      (                            )
{
 return MainWindowHeight;
}
//-------------------------------------------------------------------------------------------------
WORD
TOptions::             GetMainWindowTop         (                            )
{
 return MainWindowTop;
}
//-------------------------------------------------------------------------------------------------
WORD
TOptions::             GetMainWindowLeft        (                            )
{
 return MainWindowLeft;
}
,
C++
1
2
3
4
5
6
7
8
9
bool
TOptions::             Load                     (                            )
{
 std::ifstream Options;
 Options.open("Options.SculptorOptions", std::ios::binary);
 Options.read((char*)this, sizeof(TOptions));
 Options.close();
 return true;
}
,
C++
1
2
3
4
5
6
7
8
9
10
11
WindowMain=CreateWindow("Sculptor.Window.Main"       ,
                          "Sculptor"                   ,
                          WS_OVERLAPPEDWINDOW          ,
                          Options.GetMainWindowLeft  (),
                          Options.GetMainWindowTop   (),
                          Options.GetMainWindowWidth (),
                          Options.GetMainWindowHeight(),
                          NULL                         ,
                          NULL                         ,
                          Instance                     ,
                          NULL                         );
. Размеры и положение окна после запуска не совпадают с размерами и положением этого же окна перед закрытием.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.11.2014, 11:14
Ответы с готовыми решениями:

Выравнивание компонентов при изменении размеров главного окна
Посоветуйте, как лучше создавать интерфейс пользователя, чтобы при изменении размеров главного...

Установка размеров главного окна
Есть вот такой код (это файл mainwindow.cpp): #include &quot;mainwindow.h&quot; #include...

Изменение размеров главного окна
Создать меню с командами: Input size, Choose, Change, Exit. Команда Change при старте программы...

Изменение размеров Image.Picture.LoadFromFile при изменении размеров окна
Подскажите, пожалуйста, какие функции для этого нужны.

6
79 / 79 / 34
Регистрация: 26.10.2011
Сообщений: 220
03.11.2014, 11:30 2
В приведенном коде ошибки не видно, но у вас не весь код приведен, например где вызывается функция Load и сама функция Save. Ошибку хорошо искать с помощью отладки, смотреть создается ли файл с настройками после выхода из программы...
0
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
03.11.2014, 11:35  [ТС] 3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
if (Options.Load())
 {
  WindowMain=CreateWindow("Sculptor.Window.Main"       ,
                          "Sculptor"                   ,
                          WS_OVERLAPPEDWINDOW          ,
                          Options.GetMainWindowLeft  (),
                          Options.GetMainWindowTop   (),
                          Options.GetMainWindowWidth (),
                          Options.GetMainWindowHeight(),
                          NULL                         ,
                          NULL                         ,
                          Instance                     ,
                          NULL                         );
. Файл создаётся.

Добавлено через 45 секунд
Цитата Сообщение от sergestus Посмотреть сообщение
сама функция Save.
В обоих сетах.
0
79 / 79 / 34
Регистрация: 26.10.2011
Сообщений: 220
03.11.2014, 15:36 4
нужно в отладчике посмотреть, что в файл пишется и что оттуда читается - поставить breakpint в Save и в Load.
0
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
03.11.2014, 15:39  [ТС] 5
Ставил. Но подобрать приращения не получается.
0
79 / 79 / 34
Регистрация: 26.10.2011
Сообщений: 220
03.11.2014, 17:53 6
Цитата Сообщение от taras atavin Посмотреть сообщение
Ставил. Но подобрать приращения не получается.
Не совсем понимаю о каких приращениях вы говорите, по моему нужно просто проверить, что то, что вы пишете соответствует тому, что вы читаете...
0
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
03.11.2014, 18:19  [ТС] 7
Тема как раз о том, что нифига ничему не соответствует.
0
03.11.2014, 18:19
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.11.2014, 18:19
Помогаю со студенческими работами здесь

Изменение размеров рисунка при изменении размеров области вывода (окна)
Нужно сделать так, что бы рисунок менял свой размер при изменении окна... unit Unit1; interface ...

Масштабирование размеров графика в Image при изменении размеров окна
Подскажите пожалуйста, как использовать масштабирование, у меня построен график в Image1, как...

Изменение размеров виджета при изменении размеров окна
Здравствуйте! Окно, созданное Qt (в моем случае QMainWindow), можно увеличивать и уменьшать в...

Изменение размеров окна при изменении размеров виджета
Доброго времени суток, господа программисты! Возникла такая ситуация: есть окно программы, в нем...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru