Guía Cómo Cambiar Interfaz DataServer en C++ (Remover Imagen) en SRC 5.2 BASE - Source Mu - Mu Server Files
 

Guía Cómo Cambiar Interfaz DataServer en C++ (Remover Imagen) en SRC 5.2 BASE

Publicado por Dakosmu, Abr 23, 2026, 04:58 AM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Keywords Guía source en C++C++ MuOnlineSRC 5.2 BASE

Dakosmu

Guía Cómo Cambiar Interfaz DataServer en C++ (Remover Imagen) en SRC 5.2 BASE

Regístrate para ver el enlace

Aprende a personalizar interfaz DataServer modificando el código fuente en C++ para emuladores. En este tutorial eliminaremos el bitmap original por defecto para reemplazarlo por un diseño con colores sólidos mucho más ligero y limpio.

Este procedimiento está pensado para sources basados en MGM Emulator o proyectos de Louis. Necesitarás abrir tu solución con Visual Studio y tener a la mano un editor de texto plano.

Importante: Antes de empezar a personalizar interfaz DataServer, realiza una copia de seguridad (backup) de toda tu carpeta source para evitar la pérdida de datos en caso de errores de sintaxis.

Pasos para modificar el código fuente

  • Abre el archivo ServerDisplayer.h. Elimina las dos líneas de defines que ya no se usan, cambia el array de brushes de [4] a [3] y elimina la variable del bitmap.
    ELIMINAR estas 2 líneas:
    #define LOG_CONTAINER_BRUSH   3
    #define LOG_MAIN_BRUSH        3
    CAMBIAR el array:
    HBRUSH m_brush[4];   // Cambiar esto...
    HBRUSH m_brush[3];   // ...y dejar así
    ELIMINAR esta línea:
    HBITMAP m_hBitmap;
  • Abre ServerDisplayer.cpp y en la parte superior del archivo, borra la línea que incluye resource.h, ya que el bitmap ya no se usa.
    ELIMINAR:
    #include "resource.h"
  • En el constructor CServerDisplayer::CServerDisplayer(), reemplaza los brushes existentes y borra la línea de carga del bitmap.
    REEMPLAZAR los brushes por lo siguiente:
    this->m_brush[0] = CreateSolidBrush(RGB(105, 105, 105));
    this->m_brush[1] = CreateSolidBrush(RGB(110, 240, 120));
    this->m_brush[2] = CreateSolidBrush(RGB(9, 99, 189));
    ELIMINAR del constructor:
    m_hBitmap = LoadBitmap(GetModuleHandle(NULL), MAKEINTRESOURCE(IDB_BITMAP1));
  • En el destructor CServerDisplayer::~CServerDisplayer(), elimina el borrado de objetos para el brush extra y el bitmap.
    ELIMINAR:
    DeleteObject(this->m_brush[LOG_MAIN_BRUSH]);
    if (m_hBitmap != nullptr)
    {
    DeleteObject(m_hBitmap);
    m_hBitmap = nullptr;
    }
  • Reemplaza la función PaintName() por completo. En lugar de dibujar un bitmap, esto generará el rectángulo azul con texto.
    REEMPLAZAR toda la función actual por esta:
    void CServerDisplayer::PaintName()
    {
    RECT rect;
    GetClientRect(this->m_hwnd, &rect);
    rect.top = 0;
    rect.bottom = 50;
    HDC hdc = GetDC(this->m_hwnd);
    int OldBkMode = SetBkMode(hdc, TRANSPARENT);
    HFONT OldFont = (HFONT)SelectObject(hdc, this->m_font);
    SetTextColor(hdc, RGB(255, 255, 255));
    FillRect(hdc, &rect, this->m_brush[2]);
    TextOut(hdc, 80, 0, DATASERVER_CLIENT, sizeof(DATASERVER_CLIENT));
    SelectObject(hdc, OldFont);
    SetBkMode(hdc, OldBkMode);
    ReleaseDC(this->m_hwnd, hdc);
    }
  • Ajusta la función PaintAllInfo() modificando la posición Y (PosY). El modo Standby irá justo bajo el nombre.
    ANTES:
    int PosY = 150;
    rect.top = PosY;
    rect.bottom = PosY + 50;
    DESPUÉS:
    int PosY = 50;
    rect.top = PosY;
    rect.bottom = PosY + 50;
  • Edita DataServer.rc abriéndolo con un editor de texto (no con Visual Studio).
    BUSCAR Y ELIMINAR:
    IDB_BITMAP1  BITMAP  "../../../Util/bitmap2.bmp"
  • Abre el archivo resource.h y limpia la referencia huérfana.
    BUSCAR Y ELIMINAR:
    #define IDB_BITMAP1   130
  • Guarda todo, recompila la solución (Rebuild) y arranca tu DataServer para ver los cambios aplicados.

Aviso de compilación: Si al compilar te aparece un error indicando que LOG_MAIN_BRUSH no está declarado en otros archivos, simplemente búscalo en toda la solución y reemplázalo por un 0 (el brush estándar).

¡Misión cumplida! Si has seguido la guía, tu aplicación debería mostrar el encabezado "MGM EMULATOR" en fondo azul, logrando personalizar interfaz DataServer correctamente.


¿Te topaste con algún error C2065 al compilar o tienes ideas extra para personalizar interfaz DataServer? ¡Deja tu comentario abajo respondiendo a este tema y con gusto te echaré una mano para revisarlo!


Esos son todos los cambios, son 9 pasos en total:

  • Pasos 1–4 → modificar ServerDisplayer.h y la estructura del .cpp (brushes, bitmap)
  • Paso 5 → el cambio más importante: la nueva PaintName() que dibuja fondo azul + texto
  • Paso 6 → ajustar la posición del STANDBY MODE
  • Pasos 7–8 → limpiar el .rc y el resource.h del bitmap
  • Paso 9 → compilar

Si quieres, también puedes usar directamente el src_modified.zip que te generé antes — ya tiene todos los cambios aplicados y listo para compilar.
Bon Dia

🡱 🡳
Real Time Web Analytics