реклама на сайте
подробности

 
 
> Запуск приложения в окне заданого разрешения
Arthur_Sh
сообщение Sep 19 2012, 13:59
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 512
Регистрация: 17-02-09
Пользователь №: 44 983



Всем привет. Задачка. Есть программа, например навител навигатор, запускается под wince 6. необходимо реализовать следующее: при старте, прога не должна разворачиваться на весь экран (480*272), а на, например, 430*272. А в остальной области 50*272 я хочу рисовать другое окно. Как такое реализовать? Иначе, необходимо как-то обмануть программу, сказать ей, что экран не 480*272, а 430*272. Заране спасибо за ответы.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 4)
fox1
сообщение Sep 20 2012, 06:27
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 73
Регистрация: 3-05-06
Из: Нижний Новгород
Пользователь №: 16 725



Так все просто же

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





Сообщение отредактировал fox1 - Sep 20 2012, 07:36
Go to the top of the page
 
+Quote Post
Arthur_Sh
сообщение Sep 20 2012, 11:14
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 512
Регистрация: 17-02-09
Пользователь №: 44 983



она передвигает правый нижний угол, НО она при этом обрезает правую часть окна программы(не видно ни кнопок ни карты), плюс в навигаторе я так понимаю идет частая перерисовка окна. и получается постоянно надо задавать левый нижний угол, изза этого пправая сторона вроде как мигает постоянно(она становится 480 пикселея а я ее обратно делаю 437)
в общем этот вариант я уже пробовал. не помогает он
Go to the top of the page
 
+Quote Post
fox1
сообщение Sep 20 2012, 11:37
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 73
Регистрация: 3-05-06
Из: Нижний Новгород
Пользователь №: 16 725



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

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

HKLM\Dirivers\Display\

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



Сообщение отредактировал fox1 - Sep 20 2012, 11:46
Go to the top of the page
 
+Quote Post
Arthur_Sh
сообщение Sep 21 2012, 07:23
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 512
Регистрация: 17-02-09
Пользователь №: 44 983



Цитата(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 сделать?
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 08:16
Рейтинг@Mail.ru


Страница сгенерированна за 0.01371 секунд с 7
ELECTRONIX ©2004-2016