Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: Soir en 28 Agosto 2010, 20:27 pm



Título: Botón que cierra aplicación
Publicado por: Soir en 28 Agosto 2010, 20:27 pm
Hola!!!


Me gustaría hacer que mi aplicación al darle a un botón se cierre.


Os dejo imagen....

(http://img638.imageshack.us/img638/8030/afmasjlnwnhnm.png)


Saludos!! Soy bastante novato en esto, así que si me podeis explicar despacio mejor... Gracias. ^^


Título: Re: Botón que cierra aplicación
Publicado por: Ariath en 28 Agosto 2010, 21:32 pm
Bonita foto de Nagrand :) .

Una curiosidad, ¿Estás programando un selector de reinos en C++?

Lo digo porque, a mí personalmente, me parece un poco exagerado usar C++ para ese tipo de aplicaciones. Pueden hacerse bien en C# o incluso VB sin gran esfuerzo.

Salu2


P.D: No se si esto te servirá, pero te lo pongo por si acaso, lo he encontrado googleando por ahí:

Código
  1. bool clsWin = DestroyWindow(ventana);
  2.  
  3. if(clsWin != 0)
  4. {
  5.  //Tratamiento de errores.
  6. }
  7.  

Osea, ese sería el código que destruye la ventana, faltaría manejar el evento de clic en el botón de la misma.


Título: Re: Botón que cierra aplicación
Publicado por: Soir en 28 Agosto 2010, 21:51 pm
Hmmm... Gracias, bueno, esque te comento, tengo 2 reinos, entonces, 1 es blizzlike y el otro custom, entonces cuando se ejecute el botón de entrar al blizzlike, se renombran los parches custom del reino custom para que no jueges en el blizzlike con los parches del custom...

Es algo lioso... jaja

Mira, intente meterlo en el click, y me sale:

Código:
1>Index Loader 1.0.cpp
1>c:\users\jorge\documents\visual studio 2008\projects\index loader 1.0\index loader 1.0\Form1.h(96) : error C2065: 'DestroyWindow' : identificador no declarado



Título: Re: Botón que cierra aplicación
Publicado por: Ariath en 28 Agosto 2010, 21:57 pm
Espera, espera... que me estoy perdiendo un poco, ¿Los parches custom de los que hablas... se refieren simplemente al cambio de realmlist?

Hace no mucho hice yo un lanzador para el servidor para el que juego, aunque en este caso Java, por aquello de la multiplataforma.

El DestroyWindow no lo he usado nunca, solo es algo que he encontrado antes, pero supongo que requiere como argumento la ventana que tiene que destruir, y en esa muestra le has suprimido el argumento.

Salu2


P.D: Mmm... vale, te preguntaba en la anterior versión del post este si estabas usando Visual Studio, pero ya veo que si.

Prueba con esto que acabo de encontrar: http://answers.yahoo.com/question/index?qid=20080211145558AAWTB26


Título: Re: Botón que cierra aplicación
Publicado por: Soir en 28 Agosto 2010, 22:15 pm
Espera, espera... que me estoy perdiendo un poco, ¿Los parches custom de los que hablas... se refieren simplemente al cambio de realmlist?

Hace no mucho hice yo un lanzador para el servidor para el que juego, aunque en este caso Java, por aquello de la multiplataforma.

El DestroyWindow no lo he usado nunca, solo es algo que he encontrado antes, pero supongo que requiere como argumento la ventana que tiene que destruir, y en esa muestra le has suprimido el argumento.

Salu2


P.D: Mmm... vale, te preguntaba en la anterior versión del post este si estabas usando Visual Studio, pero ya veo que si.

Prueba con esto que acabo de encontrar: http://answers.yahoo.com/question/index?qid=20080211145558AAWTB26

Estoy muy verde en esto... jeje

Bueno, me refiero a los parches custom de mi servidor, editar screens, edita logos, terrenos etc... entonces a ese programa le voy a añadir dos imagenes, cuando hagas click a la del reino blizzlike se renombran los parches para que el WoW no los cargue ,así la gente puede alternar a que reino quieren jugar.

y eso tampoco me sirve... jeje

Si lo pongo así



me da este error
Código:
1>c:\users\jorge\documents\visual studio 2008\projects\index loader 1.0\index loader 1.0\Form1.h(99) : error C2228: el operando izquierdo de '.close' debe tener class/struct/union
1>        el tipo es 'IndexLoader10::Form1 ^const '
1>        ¿deseaba utilizar '->' en su lugar?

Y si cambio el . por el -> tambien me sale error


Título: Re: Botón que cierra aplicación
Publicado por: Ariath en 28 Agosto 2010, 22:27 pm
Oye... solo una sugerencia, ¿Y si usas C# en vez de C++ para el programa?

No se cuanto código tendrás pero... es que creo que te dará menos quebraderos de cabeza ;) .

Salu2


Título: Re: Botón que cierra aplicación
Publicado por: Littlehorse en 28 Agosto 2010, 22:38 pm
Creo que deberías empezar leyendo este post (http://foro.elhacker.net/programacion_cc/principios_basicos_de_programacion_windows_lenguaje_c-t299760.0.html)

Lo que quieres hacer es sencillo tanto en C# como en C++, pero dependerá del código que lleves hecho. Si puedes exponerlo, aunque sea el manejo de la ventana, se haría mucho mas fácil.

Saludos


Título: Re: Botón que cierra aplicación
Publicado por: Soir en 28 Agosto 2010, 22:48 pm
Hmmm

No tengo casi nada de código, estoy sobre todo con los gráficos.

Aquí os lo dejo...
Código
  1. #pragma once
  2.  
  3.  
  4. namespace IndexLoader10 {
  5.  
  6. using namespace System;
  7. using namespace System::ComponentModel;
  8. using namespace System::Collections;
  9. using namespace System::Windows::Forms;
  10. using namespace System::Data;
  11. using namespace System::Drawing;
  12.  
  13. /// <summary>
  14. /// Resumen de Form1
  15. ///
  16. /// ADVERTENCIA: si cambia el nombre de esta clase, deberá cambiar la
  17. ///          propiedad 'Nombre de archivos de recursos' de la herramienta de compilación de recursos administrados
  18. ///          asociada con todos los archivos .resx de los que depende esta clase. De lo contrario,
  19. ///          los diseñadores no podrán interactuar correctamente con los
  20. ///          recursos adaptados asociados con este formulario.
  21. /// </summary>
  22. public ref class Form1 : public System::Windows::Forms::Form
  23. {
  24. public:
  25. Form1(void)
  26. {
  27. InitializeComponent();
  28. //
  29. //TODO: agregar código de constructor aquí
  30. //
  31. }
  32.  
  33. protected:
  34. /// <summary>
  35. /// Limpiar los recursos que se estén utilizando.
  36. /// </summary>
  37. ~Form1()
  38. {
  39. if (components)
  40. {
  41. delete components;
  42. }
  43. }
  44. private: System::Windows::Forms::Button^  button1;
  45. protected:
  46.  
  47. private:
  48. /// <summary>
  49. /// Variable del diseñador requerida.
  50. /// </summary>
  51. System::ComponentModel::Container ^components;
  52.  
  53. #pragma region Windows Form Designer generated code
  54. /// <summary>
  55. /// Método necesario para admitir el Diseñador. No se puede modificar
  56. /// el contenido del método con el editor de código.
  57. /// </summary>
  58. void InitializeComponent(void)
  59. {
  60. System::ComponentModel::ComponentResourceManager^  resources = (gcnew System::ComponentModel::ComponentResourceManager(Form1::typeid));
  61. this->button1 = (gcnew System::Windows::Forms::Button());
  62. this->SuspendLayout();
  63. //
  64. // button1
  65. //
  66. this->button1->BackColor = System::Drawing::Color::Transparent;
  67. this->button1->BackgroundImageLayout = System::Windows::Forms::ImageLayout::None;
  68. this->button1->Cursor = System::Windows::Forms::Cursors::Hand;
  69. this->button1->FlatAppearance->BorderSize = 0;
  70. this->button1->FlatStyle = System::Windows::Forms::FlatStyle::Popup;
  71. this->button1->ForeColor = System::Drawing::Color::Transparent;
  72. this->button1->Location = System::Drawing::Point(692, 0);
  73. this->button1->Name = L"button1";
  74. this->button1->Size = System::Drawing::Size(26, 24);
  75. this->button1->TabIndex = 0;
  76. this->button1->UseVisualStyleBackColor = false;
  77. this->button1->Click += gcnew System::EventHandler(this, &Form1::button1_Click);
  78. //
  79. // Form1
  80. //
  81. this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
  82. this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
  83. this->BackgroundImage = (cli::safe_cast<System::Drawing::Image^  >(resources->GetObject(L"$this.BackgroundImage")));
  84. this->ClientSize = System::Drawing::Size(719, 569);
  85. this->Controls->Add(this->button1);
  86. this->FormBorderStyle = System::Windows::Forms::FormBorderStyle::None;
  87. this->MaximizeBox = false;
  88. this->Name = L"Form1";
  89. this->StartPosition = System::Windows::Forms::FormStartPosition::CenterScreen;
  90. this->Text = L"Form1";
  91. this->Load += gcnew System::EventHandler(this, &Form1::Form1_Load);
  92. this->ResumeLayout(false);
  93.  
  94. }
  95. #pragma endregion
  96. private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
  97. }
  98. private: System::Void Form1_Load(System::Object^  sender, System::EventArgs^  e) {
  99. }
  100. };
  101. }
  102.  


Título: Re: Botón que cierra aplicación
Publicado por: Littlehorse en 28 Agosto 2010, 22:54 pm
Estas en la sección incorrecta, te lo muevo a .NET.

Saludos



Título: Re: Botón que cierra aplicación
Publicado por: Ariath en 28 Agosto 2010, 23:00 pm
Si al BBCode de Code lo dejas como [Code=cpp] te quedará mucho mejor el código posteado ;) .

Salu2


P.D: LH, échame un cable si te acuerdas anda, ¿Cual era el BBCode para indicar precisamente que no procese lo de dentro como BBCode? xD.

Me lo dijeron hace tiempo, pero se me ha olvidado, y cada vez que quiero mostrar como usar uno... no puedo xD.

P.D 2: Gracias :) , Estaba probando antes con [NoBBCode], y claro... xD.


Título: Re: Botón que cierra aplicación
Publicado por: Littlehorse en 28 Agosto 2010, 23:09 pm
[nobbc] [/nobbc]


Título: Re: Botón que cierra aplicación
Publicado por: [D4N93R] en 29 Agosto 2010, 01:02 am
Eso está en C++ CLI, así que prácticamente es un mutante entre C++ y .Net :)

Si quieres hacer que tu aplicación se cierre tienes que primero poner el botón :)
Segundo manejar el evento con un método.
Y luego en ese método Poner Application::Exit(); en C++ CLI o Application.Exit(); En C#

Si tienes más dudas utiliza el mismo post.


Título: Re: Botón que cierra aplicación
Publicado por: Soir en 29 Agosto 2010, 18:41 pm
Eso está en C++ CLI, así que prácticamente es un mutante entre C++ y .Net :)

Si quieres hacer que tu aplicación se cierre tienes que primero poner el botón :)
Segundo manejar el evento con un método.
Y luego en ese método Poner Application::Exit(); en C++ CLI o Application.Exit(); En C#

Si tienes más dudas utiliza el mismo post.

Pues lo del método, no se como hacerlo...

Esque soy nuevo en esto...

1 saludo.


Título: Re: Botón que cierra aplicación
Publicado por: Ariath en 29 Agosto 2010, 20:56 pm
Soir... no te ofendas por esto pero, si tan verde estás en programación, quizás deberías, antes de intentar hacer esto, entrenar más la misma.

Aparte, para hacer el programa que intentas hacer, y teniendo en cuenta lo verde aparentemente que estás, yo recomendaría descartar C++ y usar un lenguaje más asequible, como Visual Basic.

Salu2


Título: Re: Botón que cierra aplicación
Publicado por: fary en 30 Agosto 2010, 21:11 pm
Pon End dentro del codigo de tu boton.

salu2!


Título: Re: Botón que cierra aplicación
Publicado por: [D4N93R] en 30 Agosto 2010, 21:21 pm
Pon End dentro del codigo de tu boton.

salu2!
No es VB :P

Eso está en C++ CLI, así que prácticamente es un mutante entre C++ y .Net :)

Si quieres hacer que tu aplicación se cierre tienes que primero poner el botón :)
Segundo manejar el evento con un método.
Y luego en ese método Poner Application::Exit(); en C++ CLI o Application.Exit(); En C#

Si tienes más dudas utiliza el mismo post.


Título: Re: Botón que cierra aplicación
Publicado por: Soir en 31 Agosto 2010, 16:14 pm
No, si no me ofendo, sé demás que estoy verdillo... jaja

Bueno, gracias por la ayuda a todos! Me pondré a hacer cosas básicas, a ver que tal.