Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как нарисовать на форме квадрат и перерисовывать е 
:(
    Опции темы
User32
  Дата 8.7.2010, 17:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Имею Access 2003 и нарисованный квадрат на форме.
При перемещении формы за пределы экрана квадрат стирается.
Как избежать затирания или перерисовывать его заново?
PM MAIL   Вверх
Akina
Дата 8.7.2010, 17:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

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



В MS Access не существует типа объекта "Квадрат".


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
User32
Дата 8.7.2010, 17:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(Akina @ 8.7.2010,  17:09)
В MS Access не существует типа объекта "Квадрат".

Естественно, я рисую его через API функции используя gdi32.dll
Просто не совсем ясно выразился. Но не суть, суть то в чем, к примеру рисуем мы так на форме

Код

Public Sub Test123()

Dim hbrush As Long 
Dim r As RECT 
Dim retval As Long 
Dim ReturnGP As Long
Dim hdc As Long

hdc = GetWindowDC(Me.hwnd)
retval = SetRect(r, 100, 100, 200, 200) 
hbrush = CreateHatchBrush(HS_DIAGCROSS, RGB(0, 0, 255))
retval = FillRect(hdc, r, hbrush)
retval = DeleteObject(hbrush)
retval = SelectObject(hdc, holdbrush)
retval = DeleteObject(hbrush)
ReturnGP = ReleaseDC(Me.hwnd, hdc)

End Sub

А потом форму перетаскиваем за пределы экрана и возвращаем обратно.
И получаем что вся наша мазня потерлась...



Это сообщение отредактировал(а) User32 - 8.7.2010, 17:21
PM MAIL   Вверх
Akina
Дата 8.7.2010, 18:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

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



Правильно. И должна была потереться. 
Отслеживай событие перемещения формы (и изменения размеров тоже) и при необходимости перерисовывайся. Или откажись от API.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

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


Новичок



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

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



Цитата(Akina @ 8.7.2010,  18:05)
Отслеживай событие перемещения формы (и изменения размеров тоже) и при необходимости перерисовывайся.

Вот в этом и вопрос. Что за событие когда форма выходит за пределы экрана, ведь в Access не снабжен полноценным VB и потому очень сильно ограничен в методах и событиях.
К примеру в Visual Basic 6.0 что из пакета VS6.0 есть событие Paint.
Вешаем нашу процедуру на событие и забываем о этой проблеме...

Код

Private Sub Form_Paint()
  MsgBox "77777777777777777777777777777777"
End Sub


А в Access этого нет. Вот как быть в этом случаи?

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


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

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



Цитата(User32 @  9.7.2010,  10:32 Найти цитируемый пост)
Что за событие когда форма выходит за пределы экрана

Form.Move, ё моё!

Цитата(User32 @  9.7.2010,  10:32 Найти цитируемый пост)
К примеру в Visual Basic 6.0 что из пакета VS6.0 есть событие Paint.

BeforeRender
AfterRender
AfterFinalRender
И тебе ещё мало?


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
User32
Дата 9.7.2010, 12:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(Akina @ 9.7.2010,  09:35)
Цитата(User32 @  9.7.2010,  10:32 Найти цитируемый пост)
Что за событие когда форма выходит за пределы экрана

Form.Move, ё моё!

Ё - твоё, где же это у VB что в Access 2003 событие Move?


PM MAIL   Вверх
bopoha
Дата 12.7.2010, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1283
Регистрация: 10.5.2006
Где: Беларусь, Минск

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



Придется через WinAPI получать это событие.
PM MAIL WWW ICQ Skype GTalk   Вверх
User32
Дата 27.7.2010, 14:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(bopoha @ 12.7.2010,  14:52)
Придется через WinAPI получать это событие.

Это понятно, но как?
PM MAIL   Вверх
bopoha
Дата 23.8.2010, 11:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1283
Регистрация: 10.5.2006
Где: Беларусь, Минск

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



Пример см. тут.
http://support.microsoft.com/kb/278379
PM MAIL WWW ICQ Skype GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "MS Access"
Akina
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] и [code=sql][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


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

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS Access | Следующая тема »


 




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


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

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