Не слишком давно перешел с C++ Builder6 на Visual Studio C++ 2008. И у меня появился не слишком умный вопрос по поводу того, как обратиться к объекту на форме... Приложение Windows Forms. Обращение: Код | pictureBox1->Image=Image::FromFile("pic25.jpg");
|
из Image_optimizer.cpp не работает. Собственно вопрос: Как из Image_optimizer.cpp обратиться к pictureBox1, чтобы загрузить туда рисунок? (в Билдере это было бы что-то в духе Form1->pictureBox1->и_так_далее) Далее весь код: Form1.hКод | #pragma once #include "Image_optimizer.h"
namespace Image_Optimizer {
using namespace System; using namespace System::ComponentModel; using namespace System::Collections; using namespace System::Windows::Forms; using namespace System::Data; using namespace System::Drawing;
/// <summary> /// Сводка для Form1 /// /// Внимание! При изменении имени этого класса необходимо также изменить /// свойство имени файла ресурсов ("Resource File Name") для средства компиляции управляемого ресурса, /// связанного со всеми файлами с расширением .resx, от которых зависит данный класс. В противном случае, /// конструкторы не смогут правильно работать с локализованными /// ресурсами, сопоставленными данной форме. /// </summary> public ref class Form1 : public System::Windows::Forms::Form { public: Form1(void) { InitializeComponent(); // //TODO: добавьте код конструктора //
} protected: /// <summary> /// Освободить все используемые ресурсы. /// </summary> ~Form1() { if (components) { delete components; } } public: System::Windows::Forms::Button^ button1; public: System::Windows::Forms::PictureBox^ pictureBox1; /// <summary> /// Требуется переменная конструктора. /// </summary> System::ComponentModel::Container ^components;
#pragma region Windows Form Designer generated code /// <summary> /// Обязательный метод для поддержки конструктора - не изменяйте /// содержимое данного метода при помощи редактора кода. /// </summary> void InitializeComponent(void) { this->button1 = (gcnew System::Windows::Forms::Button()); this->pictureBox1 = (gcnew System::Windows::Forms::PictureBox()); (cli::safe_cast<System::ComponentModel::ISupportInitialize^ >(this->pictureBox1))->BeginInit(); this->SuspendLayout(); // // button1 // this->button1->Location = System::Drawing::Point(761, 12); this->button1->Name = L"button1"; this->button1->Size = System::Drawing::Size(122, 23); this->button1->TabIndex = 0; this->button1->Text = L"Изменить размер"; this->button1->UseVisualStyleBackColor = true; this->button1->Click += gcnew System::EventHandler(this, &Form1::button1_Click); // // pictureBox1 // this->pictureBox1->Location = System::Drawing::Point(18, 19); this->pictureBox1->Name = L"pictureBox1"; this->pictureBox1->Size = System::Drawing::Size(399, 400); this->pictureBox1->SizeMode = System::Windows::Forms::PictureBoxSizeMode::StretchImage; this->pictureBox1->TabIndex = 3; this->pictureBox1->TabStop = false; // // Form1 // this->AutoScaleDimensions = System::Drawing::SizeF(6, 13); this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font; this->ClientSize = System::Drawing::Size(895, 533); this->Controls->Add(this->button1); this->Name = L"Form1"; this->Text = L"Image Optimizer v1.0"; (cli::safe_cast<System::ComponentModel::ISupportInitialize^ >(this->pictureBox1))->EndInit(); this->ResumeLayout(false); this->PerformLayout();
} #pragma endregion private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { LoadPicture(); //при нажатии на кнопку вызываем LoadPicture() из Image_Optimizer.cpp } }; }
|
Image_optimizer.cppКод | // Image_Optimizer.cpp: главный файл проекта.
#include "stdafx.h" #include "Form1.h" #include <stdlib.h> #include <stdio.h> #include "Image_optimizer.h"
using namespace Image_Optimizer;
[STAThreadAttribute]
void LoadPicture(void) { pictureBox1->Image=Image::FromFile("pic25.jpg"); //загружаем картинку из файла };
int main(array<System::String ^> ^args) { // Включение визуальных эффектов Windows XP до создания каких-либо элементов управления Application::EnableVisualStyles(); Application::SetCompatibleTextRenderingDefault(false);
// Создание главного окна и его запуск Application::Run(gcnew Form1()); return 0; }
|
Image_optimizer.hКод | void LoadPicture(void); //объявление LoadPicture(), чтобы она была доступна в Form1.h
|
Это сообщение отредактировал(а) firedemon1986 - 23.5.2010, 09:53
|