Форум программистов, компьютерный форум, киберфорум
C++/CLI Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/40: Рейтинг темы: голосов - 40, средняя оценка - 4.83
0 / 0 / 1
Регистрация: 27.06.2012
Сообщений: 20

Загрузить картинку в PictureBox

14.04.2015, 13:28. Показов 8728. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Создал приложение в Visual Studio WinForms C++
Вынес на форму компонент PictureBox
Мне на него надо загрузить картинку. Как надо написать код, чтобы он работал в отдельном cpp файле?
C++
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#pragma once
 
namespace Hole {
 
    using namespace System;
    using namespace System::ComponentModel;
    using namespace System::Collections;
    using namespace System::Windows::Forms;
    using namespace System::Data;
    using namespace System::Drawing;
 
    public ref class MyForm : public System::Windows::Forms::Form
    {
    public:
        MyForm(void)
        {
            InitializeComponent();
        }
 
    protected:
        ~MyForm()
        {
            if (components)
            {
                delete components;
            }
        }
    public: System::Windows::Forms::PictureBox^  StoneImage;
    public: System::Windows::Forms::TextBox^  textBox1;
    protected:
 
    protected:
 
    public:
        System::ComponentModel::Container ^components;
 
#pragma region Windows Form Designer generated code
        void InitializeComponent(void)
        {
            this->StoneImage = (gcnew System::Windows::Forms::PictureBox());
            this->textBox1 = (gcnew System::Windows::Forms::TextBox());
            (cli::safe_cast<System::ComponentModel::ISupportInitialize^>(this->StoneImage))->BeginInit();
            this->SuspendLayout();
            // 
            // StoneImage
            // 
            this->StoneImage->Location = System::Drawing::Point(10, 200);
            this->StoneImage->Name = L"StoneImage";
            this->StoneImage->Size = System::Drawing::Size(40, 40);
            this->StoneImage->TabIndex = 0;
            this->StoneImage->TabStop = false;
                        [B]//если сюда добавить, то работает[/B]
            // 
            // textBox1
            // 
            this->textBox1->Location = System::Drawing::Point(183, 12);
            this->textBox1->Multiline = true;
            this->textBox1->Name = L"textBox1";
            this->textBox1->Size = System::Drawing::Size(141, 20);
            this->textBox1->TabIndex = 1;
            // 
            // MyForm
            // 
            this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
            this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
            this->ClientSize = System::Drawing::Size(615, 297);
            this->Controls->Add(this->textBox1);
            this->Controls->Add(this->StoneImage);
            this->Name = L"MyForm";
            this->Text = L"Попади в лунку";
            (cli::safe_cast<System::ComponentModel::ISupportInitialize^>(this->StoneImage))->EndInit();
            this->ResumeLayout(false);
            this->PerformLayout();
        }
#pragma endregion
    };
}
C++
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
#include "MainWindow.h"
#include "StoneFly.h"
#include <math.h>
 
using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
 
 
Stone::Stone(double x, double y, double alpha, int v) //конструктор класса Stone
{
    Hole::MyForm::StoneImage->Image = Image::FromFile("stone.bmp"); //а здесь не работает
    t = x/v*cos(alpha);
    SetPosition(10, 200);
}
 
void Stone::SetPosition(double x, double y)
{
        
}
 
void Stone::UpdPosition()
{
    y = x*t*g*alpha - (g / 2 * v*v*pow(cos(alpha), 2)*pow(x, 2));
}
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.04.2015, 13:28
Ответы с готовыми решениями:

Не могу загрузить картинку в PictureBox
Есть проблема Надо выбрать картинку с файла и показать ее в PictureBox. Но пчему-то не работает. Я знаю, что-то провтыкал, но...

PictureBox: загрузить текстуру
Объясню суть: я создал новый проект Windows Forms, подключил к нему библиотеки DevIL, ILU и ILUT У меня есть PictureBox мне нужно...

Загрузить массив в PictureBox
Есть массив для картинки 640 на 480 с пиксель форматом RGB565 (2 байта на цвет) uint32_t img; // (640 * 480 * 2) / 4 = 153600 Я...

3
Администратор
Эксперт .NET
 Аватар для tezaurismosis
9673 / 4825 / 763
Регистрация: 17.04.2012
Сообщений: 9,664
Записей в блоге: 14
14.04.2015, 17:03
Hole::MyForm::StoneImage->Image - это свойство нестатическое, поэтому доступа к нему здесь быть не должно. Можно передать экземпляр формы в конструктор Stone::Stone
C++
1
2
3
4
5
6
Stone::Stone(Form^ form, double x, double y, double alpha, int v) //конструктор класса Stone
{
    form->StoneImage->Image = Image::FromFile("stone.bmp");
    t = x/v*cos(alpha);
    SetPosition(10, 200);
}
Экземпляр самой формы в классе формы можно получить с помощью this.
0
0 / 0 / 1
Регистрация: 27.06.2012
Сообщений: 20
14.04.2015, 22:28  [ТС]
Ошибка: класс "system::Windows::Forms::Form" не содержит члена "StoneImage"
0
Администратор
Эксперт .NET
 Аватар для tezaurismosis
9673 / 4825 / 763
Регистрация: 17.04.2012
Сообщений: 9,664
Записей в блоге: 14
15.04.2015, 05:52
Лучший ответ Сообщение было отмечено Wendigo как решение

Решение

Ах да, нужно привести к нужному типу
C++
1
cli::safe_cast<Hole::MyForm^>(form)->StoneImage->Image = Image::FromFile("stone.bmp");
Или в параметрах сразу его указать, тогда приведение не нужно (так будет лучше)
C++
1
Stone::Stone(Hole::MyForm^ form, double x, double y, double alpha, int v)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.04.2015, 05:52
Помогаю со студенческими работами здесь

Загрузить массив пикселей в PictureBox
Собственно есть массив char в приложении Winforms. Хотелось бы загрузить этот массив в picturebox. Есть конечно вариант сохранять bmp файл,...

Как загрузить изображение в PictureBox?
Задача по нажатию на кнопку открыть файл(картинку и вывести ее в pictureBox1). Написал следующий код, но по нажатию на кнопку вылетает...

Загрузить картинку из файла
загружаю картинку в imageList1 imageList1-&gt;Images-&gt;Add(Image::FromFile(&quot;C:\\images\\0.bmp&quot; )); пытаюсь задать кнопке эту картинку по...

Как загрузить изображение из папки приложения в PictureBox?
Пишу небольшой проект и, потестив на разных компьютерах, подумал, что стоит сделать инсталлятор, что заняло пару минут. Сделав его я...

Как можно загрузить изображение из файла ресурсов (Resources) в PictureBox?
Из файла понятно как pictureBox1-&gt;Image = Image::FromFile(&quot;c:\Sarada.png&quot;); Но вот как из ресурсов?


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru