Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Запуск приложения в окне заданого разрешения
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Операционные системы > Программирование
Arthur_Sh
Всем привет. Задачка. Есть программа, например навител навигатор, запускается под wince 6. необходимо реализовать следующее: при старте, прога не должна разворачиваться на весь экран (480*272), а на, например, 430*272. А в остальной области 50*272 я хочу рисовать другое окно. Как такое реализовать? Иначе, необходимо как-то обмануть программу, сказать ей, что экран не 480*272, а 430*272. Заране спасибо за ответы.
fox1
Так все просто же

this.MainForm.Location = new System.Drawing.Point(0,0);

this.MainForm.Size = new System.Drawing.Size(430, 272);

Если внешнее приложение

string i = "C:\\My.exe";
if (!System.IO.File.Exists(i))
{
MessageBox.Show("Программа My.exe не установлена!", "", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
try
{
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.EnableRaisingEvents = false;
p.StartInfo.FileName = i;
p.StartInfo.Arguments = "1 2 3"; //Аргументы командной строки
p.Start();
p.WaitForInputIdle();
}
catch
{
MessageBox.Show("Программа My.exe не запускается!", "", MessageBoxButtons.OK, MessageBoxIcon.Error);
}


далее

Process.MainWindowHandle.

и SetWindowPos

[DllImport("core.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool SetWindowPos(IntPtr hWnd, IntPtr hWndInsertAfter, int X, int Y, int cx, int cy, SetWindowPosFlags uFlags);

http://www.pinvoke.net/default.aspx/user32/SetWindowPos.html



Arthur_Sh
она передвигает правый нижний угол, НО она при этом обрезает правую часть окна программы(не видно ни кнопок ни карты), плюс в навигаторе я так понимаю идет частая перерисовка окна. и получается постоянно надо задавать левый нижний угол, изза этого пправая сторона вроде как мигает постоянно(она становится 480 пикселея а я ее обратно делаю 437)
в общем этот вариант я уже пробовал. не помогает он
fox1
Если программа для Win CE заточена под определенное разрашение - то ни чего уже не сделаешь, задание размера формы программы - это просто обрезание, естественно, что часть элементов управления будет не видна (скрыта).
Если программа постоянно регенерируется сама внутри себя (Update, Refresh, Repaint) - то моргание экрана тоже понятно.
Я так понимаю вы хотите смасштабировать форму ????
Не факт что такое прокатит в Win CE

Можно попробовать сменить разрешение экрана

HKLM\Dirivers\Display\

[HKEY_LOCAL_MACHINE\\Drivers\Display\EP931x\RotationDegree] - ориентацию экрана я так менял без всяких перезагрузок
Насчет разрешения экрана - не знаю

Arthur_Sh
Цитата(fox1 @ Sep 20 2012, 14:37) *
Если программа для Win CE заточена под определенное разрашение - то ни чего уже не сделаешь, задание размера формы программы - это просто обрезание, естественно, что часть элементов управления будет не видна (скрыта).
Если программа постоянно регенерируется сама внутри себя (Update, Refresh, Repaint) - то моргание экрана тоже понятно.
Я так понимаю вы хотите смасштабировать форму ????
Не факт что такое прокатит в Win CE

Можно попробовать сменить разрешение экрана

HKLM\Dirivers\Display\

[HKEY_LOCAL_MACHINE\\Drivers\Display\EP931x\RotationDegree] - ориентацию экрана я так менял без всяких перезагрузок
Насчет разрешения экрана - не знаю

а причем тут смена разрешения, фактически мне надо обмануть приложение, сказать ему, что экран у меня не 480*272, а 430*272. а в остальных 50ти пикселях я буду показывать другое приложение. Идеи есть и можно ли такое вообще под wince сделать?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.