[Visual c++ 2008]6 pytań

0

Witam!
1. Chciałbym zrobić, aby po kliknięciu w obrazek, wysunęło się menu.

Jeżeli można, to jak zmienić styl takiego menu na własny? Na taki, jaki się zrobi np. w Photoshopie

Kod obrazka:

			this->lista->Image = (cli::safe_cast<System::Drawing::Image^  >(resources->GetObject(L"lista.Image")));
			this->lista->Location = System::Drawing::Point(284, 38);
			this->lista->Name = L"lista";
			this->lista->Size = System::Drawing::Size(26, 25);
			this->lista->TabIndex = 39;
			this->lista->TabStop = false;

2. Chce zrobić swój styl programu, i nie wiem za bardzo jaki jest skrypt do minimalizacji i maksymalizacji, bo do zamknięcia to jest Exit() i jeszce, aby można było rozszerzyć oraz przenieść.

3. Jak zrobić własny styl Scroll bara, oraz pola tekstu.

4. Jak otworzyć formę o nazwie Settgins, gdyż nie wiem jak mu dać znać że to forma.

5. Co zrobić, aby ProgressBar pokazywał, że strona internetowa się ładuję.

6. Jak zrobić aby po najechaniu myszką na obrazek, ten się zmienił?

Za pomoc z góry wielkie dzięki ;-)

0
  1. Co rozumiesz poprzez "styl menu"? Obrazek tła?
  2. Co rozumiesz poprzez "skrypt do minimalizacji i maksymalizacji"? Chcesz programowo minimalizować i maksymalizować okno swojej aplikacji?
  3. Nadal nie wiem, co to "styl".
  4. Kolejne nieprecyzyjne pytanie.
  5. W trakcie pobierania danych ze strony obliczyć jaka ich część została załadowana i wyświetlić tę wartość w progressbarze?
  6. Obsłużyć zdarzenie najechania myszką na kontrolkę. W jakiej kontrolce masz ten obrazek?
0
  1. że masz inny kolor tła wysuwanego menu np. czarny i własny zrobiony w Photoshopie Scroll bar
  2. czyli, że chce jak gdyby podmienić standardowe ikony minimalizacji, zamknięcia, oraz maksymalizacji, oraz pasek gdzie znajduję się nazwa programu.
  3. teraz już wiesz ;-)
  4. Chodzi o to:
Settgins^ frm = gcnew Settgins();
frm->Show();

nie wiem jak go poinformować o tym, iż jest to forma. Wywala mi:

error C2065: 'frm' : undeclared identifier
error C3867: 'Projekt::Settgins': function call missing argument list; use '&Projekt::Settgins' to create a pointer to member
error C2061: syntax error : identifier 'Settgins'
error C2065: 'frm' : undeclared identifier
error C2227: left of '->Show' must point to class/struct/union/generic type

5)Dokładnie, tak jak w codziennych przeglądarkach internetowych.
6) Oto skrypt obrazka który mam:

			this->info = (gcnew System::Windows::Forms::PictureBox());
			(cli::safe_cast<System::ComponentModel::ISupportInitialize^  >(this->info))->BeginInit();

[...]

			this->info->Anchor = static_cast<System::Windows::Forms::AnchorStyles>((System::Windows::Forms::AnchorStyles::Top | System::Windows::Forms::AnchorStyles::Right));
			this->info->Image = (cli::safe_cast<System::Drawing::Image^  >(resources->GetObject(L"info.Image")));
			this->info->Location = System::Drawing::Point(819, 41);
			this->info->Name = L"info";
			this->info->Size = System::Drawing::Size(20, 17);
			this->info->TabIndex = 31;
			this->info->TabStop = false;
			this->info->Click += gcnew System::EventHandler(this, &Form1::pictureBox8_Click);;

PS: Dziękuję, że chcesz mi pomagać, gdyż już myślałem, że ten temat będzie bez odpowiedzi...

0

Sądzę, iż słowo "styl" w tym kontekście oznacza wygląd jak np. w Winampie. Czyli właśnie inny wygląd tracbara, menu itd.
Sam jestem ciekawy jak to jest zrobione, tak samo jak ciekawi mnie jak został zrobiony Sample Browser z SDK DirectX, wygląda jakby w HTMLu.

0

no pewnie sami zrobili sobie takie kontrolki...

0

Tu mam coś > http://www.centrumxp.pl/dotNet/707,1,14_Tworzenie_w%C5%82asnych_kontrolek.aspx

Ale nie mam "Web Control Library", i nie wiem jak zrobić np. Scroll Bar'a

0
Ziom73 napisał(a)
  1. że masz inny kolor tła wysuwanego menu np. czarny i własny zrobiony w Photoshopie Scroll bar

Kolory teł można podmieniać programowo przecież, zazwyczaj odpowiada za niego właściwość BackColor kontrolki. Z paskami przewijania, elementami comboboxów, itp. mogą być większe problemy, ale od tego jest zdaje się zdarzenie OnPaint.

  1. czyli, że chce jak gdyby podmienić standardowe ikony minimalizacji, zamknięcia, oraz maksymalizacji, oraz pasek gdzie znajduję się nazwa programu.

Podmienić chyba się nie da. Wywalasz standardowy pasek, a przyciski rysujesz sobie sam.

  1. Chodzi o to:
Settgins^ frm = gcnew Settgins();
frm->Show();

nie wiem jak go poinformować o tym, iż jest to forma.

Spróbowałeś zrobić to, co napisane jest w komunikacie błędu?

Projekt::Form1::Settgins^ frm = gcnew Projekt::Form1::Settgins();
frm->Show();

Być może masz coś niezałączone (brakuje wpisu w #include).
Wybrałeś sobie chyba najgorszy z obecnie dostępnych języków, więc musisz się męczyć z banałami, przykro mi.
Albo nie, nie jest mi przykro.

  1. Oto skrypt obrazka który mam:

Fajnie - to po prostu w designerze dodaj mu zdarzenie np. MouseEnter i umieść tam kod podmieniający obrazek.

Ale nie mam "Web Control Library", i nie wiem jak zrobić np. Scroll Bar'a

Czytałeś artykuł z tego linka? Tworzysz stronę w ASP.NET?

0
  1. Nadal nie wiem jak zrobić, aby po kliknięciu w obrazek, wysunęło się menu.

  2. Nie działa nadal...

  3. mam mouse enter, ale nie wiem jak wyświetlić inny obrazek po najechaniu myszką. Mam tak:

private: System::Void pictureBox9_MouseEnter(System::Object^  sender, System::EventArgs^  e) {

		 }

Ale chodzi mi o to że nie mam takiego czegoś Web Control Library w projektach:

File -> New -> Project, następnie z pośród dostępnych szablonów zaznaczmy „Web Control Library”

0
Ziom73 napisał(a)
  1. Nadal nie wiem jak zrobić, aby po kliknięciu w obrazek, wysunęło się menu.

Czemu chcesz klikać w obrazek? Klikasz w przycisk, któremu ustawiłeś wcześniej obrazek jako tło.

  1. Nie działa nadal...

Zaincludowałeś plik z tym drugim oknem, używasz pełnych nazw i nic? Możesz pokazać więcej kodu?

  1. mam mouse enter, ale nie wiem jak wyświetlić inny obrazek po najechaniu myszką.

Obrazek ma być z pliku czy skąd?

Ale chodzi mi o to że nie mam takiego czegoś Web Control Library w projektach:

File -> New -> Project, następnie z pośród dostępnych szablonów zaznaczmy „Web Control Library”

Z jakiego IDE korzystasz i jaki ma związek Web Control Library z Twoim problemem?

0

Będzie szybciej, chodzi mi o to:
http://rapidshare.com/files/291194269/Projekt.rar

--

jaki ma związek Web Control Library z Twoim problemem?

Ma związek taki, że nie mam tego w Projektach.

z pośród dostępnych szablonów zaznaczmy „Web Control Library”

0
Ziom73 napisał(a)

Ma związek taki, że nie mam tego w Projektach.

z pośród dostępnych szablonów zaznaczmy „Web Control Library”

Z jakiego IDE korzystasz?

0

Microsoft Visual Studio c++ 2008

0

Chyba zapomniałeś dodać Express Edition.

To niby dlaczego w iDE do C++ miałbyś móc realizować projekty ASP.NET? To tak, jakbyś zastanawiał się, czemu w Twojej pralce nie ma otworu do wlewania benzyny.

Taka mała uwaga na początek - Rapidshare to złe miejsce na dzielenie się danymi. Musiałem długo czekać, zanim zwolniły się sloty.

Odnośnie Twojego problemu z brakiem widoczności jednej klasy okna w pliku drugiej - nie dałeś na początku #include "plik.h".
Kod na początku Form1.h powinien wyglądać tak:

#include "Settgins.h"

#pragma once
using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;

namespace Projekt {
...

Wówczas wywołanie formatki pod przyciskiem:

private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
			 Settgins^ frm = gcnew Settgins();
			 frm->Show();
		 }

Zmiana obrazu w PictureBoxie po jego najechaniu myszką (wczytanie z pliku):

private: System::Void pictureBox1_MouseEnter(System::Object^  sender, System::EventArgs^  e) {
			 this->pictureBox1->Image = Image::FromFile("C:\\obrazek.bmp");
		 }

Obsługa minimalizacji i maksymalizacji okna pod przyciskami:

private: System::Void button2_Click(System::Object^  sender, System::EventArgs^  e) {
			 this->WindowState = System::Windows::Forms::FormWindowState::Minimized;
		 }
private: System::Void button3_Click(System::Object^  sender, System::EventArgs^  e) {
			 this->WindowState = System::Windows::Forms::FormWindowState::Maximized;
		 }

Jesteś początkujący, prawda? Pewno myślisz, że piszesz w C++. A tak nie jest, to jest C++/CLI. Językowa hybryda firmy M$, zmodyfikowana odmiana C++ przeznaczona do programowania pod platformę .NET, która być może kiedyś miała sens, a teraz będzie porzucana i za 2 lata nikt o niej nie będzie pamiętał (zwłaszcza M$).
Jeśli chcesz pisać pod .NET, to pisz w C#, jeśli chcesz być programistą C++, to pisz w prawdziwym C++. Nie utrudniaj sobie życia.

0
  1. Sorry za RapidShare ;/
  2. include mam w Projekt.cpp:
// Projekt.cpp : main project file.

#include "stdafx.h"
#include "Form1.h"
#include "Settgins.h"

I czemu działa tylko jak jest w Form1, a nie w Projekt.cpp, przecież najpierw wczytuję projekt.cpp
3. Minimalizacja i Maksymalizacja, działają ^^, ale jak przemieszczać okienko?
4. Jak zrobić aby nie wczytywać obrazka z dysku, tylko z aplikacji, czyli próbuje tak:

private: System::Void pictureBox1_MouseEnter(System::Object^  sender, System::EventArgs^  e) {
								this->pictureBox1->Image = (cli::safe_cast<System::Drawing::Image^  >(resources->GetObject(L"pictureBox3.Image")));
		 }

ps. Wielkie dzięki za udzieloną mi pomoc, oraz za wypowiedź na temat c++. ;-)

0
Ziom73 napisał(a)

I czemu działa tylko jak jest w Form1, a nie w Projekt.cpp, przecież najpierw wczytuję projekt.cpp

Mnie nie pytaj, nie ja wymyśliłem C++. W sensownych językach nie ma żadnych include.

  1. Minimalizacja i Maksymalizacja, działają ^^, ale jak przemieszczać okienko?

Strzelam, że obsłużyć zdarzenie MouseMove formatki.

  1. Jak zrobić aby nie wczytywać obrazka z dysku, tylko z aplikacji

Nie mam pojęcia jak dobrać się do zasobów aplikacji w C++/CLI, ja nie piszę w tym języku. Może gdzieś na MSDN jest.

0

Co do twojej wypowiedzi, to w czym można pisać c++? Jaki jest najprostszy, ale również funkcjonalny program do tego?

1 użytkowników online, w tym zalogowanych: 0, gości: 1