Visual C++ .NET - posición de texto

 
Vista:

posición de texto

Publicado por wind (4 intervenciones) el 19/07/2014 19:44:38
Para posicionar un texto en pascal de usa gotoxy.
¿Qué librería y función debo utilizar para posicionar texto en C++? usando Visual Studio (Opción más recomendada)
De ser posible, un ejemplo básico.
Saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Posicionamiento de texto en consola y formularios de Windows

Publicado por Alejandro (265 intervenciones) el 13/02/2024 23:08:17
Wind, en C++, especialmente en entornos gráficos de Windows, no se utiliza `gotoxy` como en Pascal para posicionar texto en la pantalla. En lugar de eso, se utilizan funciones y clases proporcionadas por las bibliotecas gráficas o de interfaz de usuario específicas del entorno.

Para aplicaciones de consola en C++, puedes utilizar la función `SetConsoleCursorPosition` de la biblioteca `<Windows.h>` para posicionar el cursor en la consola. Aquí tienes un ejemplo básico:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <Windows.h>
 
int main() {
    // Obtener el identificador de la consola
    HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
 
    // Coordenadas x e y a las que se desea posicionar el cursor
    int x = 10;
    int y = 5;
 
    // Llamar a SetConsoleCursorPosition para posicionar el cursor
    SetConsoleCursorPosition(hConsole, { static_cast<SHORT>(x), static_cast<SHORT>(y) });
 
    // Imprimir el texto en la posición especificada
    std::cout << "Texto en la posición (" << x << ", " << y << ")";
 
    return 0;
}

En este ejemplo, `SetConsoleCursorPosition` se utiliza para mover el cursor a las coordenadas `(x, y)` en la consola, y luego se imprime el texto en esa posición.

Para aplicaciones gráficas usando Windows Forms en Visual Studio, puedes usar controles como `Label` o `TextBox` y establecer sus propiedades `Location` para posicionarlos en la ventana. Aquí tienes un ejemplo simple con un formulario de Windows Forms:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include "stdafx.h"
#include "Form1.h"
 
using namespace System;
using namespace System::Windows::Forms;
 
[STAThreadAttribute]
int main(array<System::String ^> ^args) {
    Application::EnableVisualStyles();
    Application::SetCompatibleTextRenderingDefault(false);
 
    // Crear e iniciar el formulario
    Application::Run(gcnew Form1());
 
    return 0;
}

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
#pragma once
 
namespace YourNamespace {
 
    using namespace System;
    using namespace System::Windows::Forms;
 
    public ref class Form1 : public System::Windows::Forms::Form {
    public:
        Form1(void) {
            InitializeComponent();
        }
 
    protected:
        ~Form1() {
            if (components) {
                delete components;
            }
        }
 
    private: System::Windows::Forms::Label^ label1;
 
    private: System::ComponentModel::Container ^components;
 
    void InitializeComponent(void) {
        this->label1 = (gcnew System::Windows::Forms::Label());
        this->SuspendLayout();
 
        //
        // label1
        //
        this->label1->AutoSize = true;
        this->label1->Location = System::Drawing::Point(50, 30);
        this->label1->Name = L"label1";
        this->label1->Size = System::Drawing::Size(120, 20);
        this->label1->Text = L"Texto en la posición (50, 30)";
 
        //
        // Form1
        //
        this->AutoScaleDimensions = System::Drawing::SizeF(8, 16);
        this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
        this->ClientSize = System::Drawing::Size(300, 200);
        this->Controls->Add(this->label1);
        this->Name = L"Form1";
        this->Text = L"Form1";
        this->ResumeLayout(false);
        this->PerformLayout();
    }
    };
}

En este ejemplo, se crea un formulario de Windows Forms con un `Label` posicionado en las coordenadas `(50, 30)`. Puedes ajustar las coordenadas según tus necesidades.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar