Форумы на Наша-Life
Home user CP  
Календарь событий Найти других пользователей Часто задаваемые Вопросы Поиск  
Автор
Тема
Создать Новую Тему    Ответить
Alexey71
(Junior Member)

Зарегистрирован: Jun 2005
Проживает: Russian Federation/
Написал: 13 сообщений

Оценка: 0 Votes

Visual Studio .Net 2003 для Pocket PC API?
Сообщение #207137
Пишу приложение в Visual Studio .Net 2003 для Pocket PC. Мне необходимо выводить на экран динамически меняющуюся ломаную (порядка 1000 точек длиной).
Можно ли и нужно ли для ускорения вывода использовать API фунуцию PolyLine?
После долгих поисков нашл что можно как-то так:

[DllImport("gdi32.dll", EntryPoint="PolyLine")]
public static extern bool PolyLine(IntPtr hWnd,Point[] Arr,int N);

Но не знаю как при вызове получить Handle на мой Bitmap:
PolyLine(???,ArrP,NP);

Подскажите, пожалуйста как быть?
Old Post 08-07-2005 15:21
Alexey71 отсутствует Посмотреть данные 'Alexey71' Отправить Приватное Сообщение для 'Alexey71' Найти другие сообщения 'Alexey71' Добавить Alexey71 в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
Hedge hog
(Senior Member)

Зарегистрирован: Mar 2003
Проживает: /
Написал: 2767 сообщений

Оценка: 63 Votes 63 чел.

Старожил 
Сообщение #207403
Там не hWnd, и не hBitmap, а hDC. Это описатель контекста устройства (т.к. можно линии рисовать не только на битмапах, но и на принтере, в метафайл, итд.). У Пикчербокса есть свойство Handle. Но это hWnd. Чтобы получить hDC из hWnd можно вызвать GetDC. Потом этот DC можно использовать для PolyLine. По окончании работы с DC надо вызвать ReleaseDC.
Old Post 08-07-2005 23:41
Hedge hog отсутствует Посмотреть данные 'Hedge hog' Отправить Приватное Сообщение для 'Hedge hog' Посетить домашнюю страничку Hedge hog Найти другие сообщения 'Hedge hog' Добавить Hedge hog в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
Alexey71
(Junior Member)

Зарегистрирован: Jun 2005
Проживает: Russian Federation/
Написал: 13 сообщений

Оценка: 0 Votes

Сообщение #207960
Может я плохо смотрел, но у Пикчербокса нет свойства Handle, по крайнер мере в C#.
Old Post 10-07-2005 15:01
Alexey71 отсутствует Посмотреть данные 'Alexey71' Отправить Приватное Сообщение для 'Alexey71' Найти другие сообщения 'Alexey71' Добавить Alexey71 в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
Hedge hog
(Senior Member)

Зарегистрирован: Mar 2003
Проживает: /
Написал: 2767 сообщений

Оценка: 63 Votes 63 чел.

Старожил 
Сообщение #208014
Копия ответа из привата (вдруг кому еще пригодится): Есть, в C#, но не в окошке со свойствами. В коде же Handle появляется в подсказке со свойствами и методами. Спокойно работает с GetDC и ReleaseDC. Но не проще ли использовать встроенную в .Net замену PolyLine? Создается массив типа Point. У объектов класса Graphics есть метод DrawPolygon. И все. На самом деле это оболочка PolyLine. Разницы в скорости, скорее всего не будет - PolyLine все равно вызввается через PInvoke, а там потеря в скорости, причем, наверно, одинаковая.
Old Post 10-07-2005 17:54
Hedge hog отсутствует Посмотреть данные 'Hedge hog' Отправить Приватное Сообщение для 'Hedge hog' Посетить домашнюю страничку Hedge hog Найти другие сообщения 'Hedge hog' Добавить Hedge hog в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
Alexey71
(Junior Member)

Зарегистрирован: Jun 2005
Проживает: Russian Federation/
Написал: 13 сообщений

Оценка: 0 Votes

Но всё же!!!
Сообщение #208124
На счёт DrawPolygon согласен, но как тогда быть с функцией PolyPolyLine (она мне тоже нужна :-) ). А вот на счёт Handle, я всё же посмотрел повнимательнее. Он есть в C# в WindowsApplication, а вот в SmartDeviceApplication (т.е. для Pocket PC или Windows CE) его нет :-(. Так что вопрос остаётся открытым.
Old Post 10-07-2005 22:06
Alexey71 отсутствует Посмотреть данные 'Alexey71' Отправить Приватное Сообщение для 'Alexey71' Найти другие сообщения 'Alexey71' Добавить Alexey71 в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
Hedge hog
(Senior Member)

Зарегистрирован: Mar 2003
Проживает: /
Написал: 2767 сообщений

Оценка: 63 Votes 63 чел.

Старожил 
Сообщение #208173
О! У класса Graphics есть метод GetHdc. Сразу даст DC для PolyPolyLine

Hedge hog добавил 11-07-2005 в 02:51:37:
и ReleaseHdc тоже есть

Hedge hog добавил 11-07-2005 в 02:56:27:
А PolyPolyLine вроде как заменяет метод DrawLines у того же Graphics. И PolyLine вроде тоже. Не тестировал ничего из этого
Old Post 11-07-2005 02:51
Hedge hog отсутствует Посмотреть данные 'Hedge hog' Отправить Приватное Сообщение для 'Hedge hog' Посетить домашнюю страничку Hedge hog Найти другие сообщения 'Hedge hog' Добавить Hedge hog в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
 
Alexey71
(Junior Member)

Зарегистрирован: Jun 2005
Проживает: Russian Federation/
Написал: 13 сообщений

Оценка: 0 Votes

Сообщение #208193
И всё же ни Graphics.Handle ни Graphics.GetHdc ни Graphics.ReleaseHdc нет в SmartDeviceApplication (т.е. для Pocket PC или Windows CE). А метод DrawLine, конечно, заменяет PolyLine и PolyPolyLine, но он раза в два медленнее :-(
Old Post 11-07-2005 06:21
Alexey71 отсутствует Посмотреть данные 'Alexey71' Отправить Приватное Сообщение для 'Alexey71' Найти другие сообщения 'Alexey71' Добавить Alexey71 в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
Все время в GMT . Сейчас 10:29.
Создать Новую Тему    Ответить

Быстрый ответ
Ваше Имя:
Хотите Зарегистрироваться?
Ваш Пароль:
Забыли свой Пароль?
Вы можете оставлять свои комментарии анонимно, просто введя свои имя и оставив пустым поле пароля.
Ваш ответ:

[проверить размер]
[транслит в win] | [?]
[русская клавиатура]

Дополнительно: Подтверждение по E-Mail


Быстрый переход:
 
Оцените эту Тему:
 

Правила форума:
Создание Тем не разрешено
Создание Сообщений разрешено
Создавать Вложения не разрешено
Редактирование Сообщений не разрешено
Коды HTML запрещены
Коды форума разрешены
Смайлики разрешены
Коды [IMG] запрещены