Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
0 / 0 / 0
Регистрация: 20.05.2017
Сообщений: 63

Не отображается форма с DirectX

30.12.2019, 21:58. Показов 1836. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
При запуске не отображается форма, т.е. ничего не происходит
В чем ошибка?
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
Imports Microsoft.DirectX
Imports Microsoft.DirectX.DirectInput
Imports Microsoft.DirectX.Direct3D
 
Public Class Form1
    Private device As Direct3D.Device = Nothing
    Public Function Init() As Boolean
        Try
            Dim presentparm As New PresentParameters
            presentparm.Windowed = True
            presentparm.SwapEffect = SwapEffect.Discard
            device = New Direct3D.Device(0, Direct3D.DeviceType.Hardware, Me, CreateFlags.SoftwareVertexProcessing, presentparm)
            Return True
        Catch ex As Exception
            Return False
        End Try
    End Function
    Private Sub Render()
        If device Is Nothing Then
            Return
        End If
        device.Clear(ClearFlags.Target, System.Drawing.Color.Blue, 1.0F, 0)
        device.BeginScene()
        device.EndScene()
        device.Present()
 
    End Sub
 
    Private Sub Form1_Paint(sender As Object, e As PaintEventArgs) Handles Me.Paint
        Render()
    End Sub
 
    Private Sub Form1_KeyDown(sender As Object, e As KeyEventArgs) Handles Me.KeyDown
        If Asc(e.KeyCode) = CInt(System.Windows.Forms.Keys.Escape) Then
            Me.Close()
 
        End If
    End Sub
 
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
        Init()
        Render()
        Application.DoEvents()
 
    End Sub
End Class
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.12.2019, 21:58
Ответы с готовыми решениями:

Неправильно отображается цвет Directx
Разбирая присер из книги Миллер Т. DirectX 9 с управляемым кодом. Программирование игр и графика. 2005. наткнулся на проблему некоректного...

DirectX и форма
Столкнулся с такой задачей: нужно нарисовать куб. Затем нужна возможность изменять угол между осями, крутить этот кубик - это нужно сделать...

Форма, поверх игр на DirectX
Доброго времени суток! Внимание, вопрос: Как показать форму поверх игры на DirectX, когда игра в режиме на весь экран? Плиз,...

6
Модератор
Эксперт .NET
 Аватар для Yury Komar
4359 / 3429 / 512
Регистрация: 27.01.2014
Сообщений: 6,258
31.12.2019, 05:00
konstantin0214, А что должно происходить?
0
0 / 0 / 0
Регистрация: 20.05.2017
Сообщений: 63
31.12.2019, 11:37  [ТС]
По идее, должна появиться форма с залитым синим цветом. Но ничего не происходит. Форма не появляется при запуске

Добавлено через 17 минут
Я поставил точку останова на
VB.NET
1
Init()
в
VB.NET
1
2
3
4
5
6
 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
        Init()
        Render()
        Application.DoEvents()
 
    End Sub
Но она не сработала при запуске. То есть, не срабатывает событие загрузки формы
0
 Аватар для mozgotron
64 / 73 / 1
Регистрация: 23.05.2015
Сообщений: 360
Записей в блоге: 52
31.12.2019, 12:22
Но она не сработала при запуске. То есть, не срабатывает событие загрузки формы
konstantin0214, такого не может быть. Если вы запускаете программу и форма Form1 появляется на экране, событие Form1_Load срабатывает обязательно!
Лучше поставьте точку останова на 8 строке (на Try) и посмотрите, в какую ветвь функции Init() пойдёт выполнение программы.
0
0 / 0 / 0
Регистрация: 20.05.2017
Сообщений: 63
31.12.2019, 12:56  [ТС]
mozgotron, так Form1 и не появляется на экране при запуске
0
2287 / 1603 / 400
Регистрация: 26.06.2017
Сообщений: 4,748
Записей в блоге: 1
31.12.2019, 13:39
по моему строки 42 и 43 лишние.
0
4709 / 3662 / 857
Регистрация: 02.02.2013
Сообщений: 3,518
Записей в блоге: 2
31.12.2019, 14:47
Лучший ответ Сообщение было отмечено konstantin0214 как решение

Решение

Внес немного изменений в ваш код
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
'…
Private device As Direct3D.Device
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    Init()
    Me.Show()
    Render()
End Sub
Public Function Init() As Boolean
    Try
        Dim presentparm As New PresentParameters
        presentparm.BackBufferCount = 1
        presentparm.BackBufferFormat = Direct3D.Manager.Adapters(0).CurrentDisplayMode.Format
        presentparm.BackBufferHeight = Me.Height
        presentparm.BackBufferWidth = Me.Width
        presentparm.Windowed = True
        presentparm.SwapEffect = SwapEffect.Discard
        device = New Direct3D.Device(0, Direct3D.DeviceType.Hardware, Me.Handle, CreateFlags.SoftwareVertexProcessing, presentparm)
        device.RenderState.CullMode = Cull.None
        Return True
    Catch ex As Exception
        MsgBox(ex.ToString)
        Return False
    End Try
End Function
'…
Если при запуске возникнут проблемы типа "Сборка для смешанного режима построена на основе версии "v1.1.4322" среды выполнения …" попробуйте изменить в файле app.config элемент startup на
XML
1
2
3
<startup useLegacyV2RuntimeActivationPolicy="true">
  <supportedRuntime version="v4.0"/>
</startup>
В данном случае 4.0 это текущая версия NET.
PS. Не очень понимаю зачем вам все это.
Миниатюры
Не отображается форма с DirectX  
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
31.12.2019, 14:47
Помогаю со студенческими работами здесь

Воспроизведение видео на форме с помощью DirectX (в референсах ничего не отображается)
Стоит задача воспроизведения видео на форме с помощью DirectX Вот нашёл небольшую вводную статью: ...

Форма поверх компьютерной игры (Directx)
Недавно на просторах Интернета встретил вот такое видео ↓ J2VURN06bVc Как я понял на видео человек с использованием Visual Basic и...

Не отображается форма
При нажатии на кнопку, первая форма скрывается, а вторая не открывается. Раньше работало все хорошо, щас вот появилась такая проблема. ...

Не отображается форма C#
Здравствуйте. Пробую создать простейшую форму, в которой выполняется постоянное (с помощью бесконечного цикла) сложение двух текстбоксов (в...

Не отображается форма
Доброго! Я уже об стену головой бьюсь, а она все не соображает( Пишу прогу, создает двумерную матрицу с границами указанными...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита, которое может. . .
Команды "Заполнить" и "Очистить" на форме документа
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". На примере нетипового документа разработанного в конфигурации КА2. В качестве источника данных указан регистр накопления, в который записываются данные о. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru