Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: CBFD en 25 Mayo 2016, 08:52 am



Título: Salida al Sistema Siin notificar error.
Publicado por: CBFD en 25 Mayo 2016, 08:52 am
Hola que tal:

Estoy haciendo la siguiente aplicación:
- Una Ventana Principal con un Menú.
- Dentro de ella dos ventanas que muestran textos que pueden cambiar de color de fondo y de escritura.

Estos últimos son ventanas que quiero crear he adaptado una clase que he visto por internet a mis especificaciones pero cuando termina sale:

 (http://www.colthop.es/img.jpg)

Pero no me da ninguna información más. La clase es :

Código:
#include <windows.h>
#include <string>

using namespace std;

class CWinThunk
{
protected:
virtual LRESULT CALLBACK WindowProc(UINT, WPARAM, LPARAM)=0;
DWORD InitThunk(void* pThis){
//  MOV [ESP+4], pThis
*(DWORD*)(_thunk + 0) = 0x042444C7;
*(DWORD*)(_thunk + 4) = (DWORD)pThis;
//  JMP  proc //salta a WindowProc
*(BYTE*) (_thunk + 8) = 0xe9;
*(DWORD*)(_thunk + 9) = **(DWORD**)this - ((int)_thunk + 13);
return (DWORD) _thunk;
}
private:
char _thunk[13];
};

class TSay: public CWinThunk
{
protected:
HWND     m_hWnd;
WNDPROC  m_lpOldProc;
LRESULT  CALLBACK WindowProc(UINT, WPARAM, LPARAM);
LRESULT  DefWindowProc(UINT, WPARAM, LPARAM);
public:
TSay(HINSTANCE,double, double, const char*, HWND, HFONT, COLORREF, COLORREF, double, double, int, int, HWND);
~TSay();
private:
  HINSTANCE   m_hIns;
  double      m_posX;
  double      m_posY;
  const char* m_pint;
  HWND        m_vent;
  HFONT       m_letr;
  COLORREF    m_escr;
  COLORREF    m_fond;
  double      m_tamX;
  double      m_tamY;
  int         m_bord;
  int         m_alin;
  HWND        m_vHij;
  void   _Conectar(HWND);
  static TSay *pCreando;
  static LRESULT CALLBACK PrimerMensaje(HWND, UINT, WPARAM, LPARAM);
};

static const  char* ClaseVentana = "ClaseTSay";

TSay::TSay(HINSTANCE hIns,double posX, double posY, const char* pint, HWND vent, HFONT letr, COLORREF escr, COLORREF fond, double tamX, double tamY, int bord, int alin, HWND vHij)
{
m_hIns = hIns;
m_posX = posX;
m_posY = posY;
m_pint = pint;
m_vent = vent;
m_letr = letr;
m_escr = escr;
m_fond = fond;
m_tamX = tamX;
m_tamY = tamY;
m_bord = bord;
m_alin = alin;
m_vHij = vHij;
m_lpOldProc = NULL;
m_hWnd    = NULL;

WNDCLASS wc;
ATOM     a;

ZeroMemory(&wc, sizeof(WNDCLASS));

wc.style = CS_HREDRAW | CS_VREDRAW;
wc.lpfnWndProc = (WNDPROC)TSay::PrimerMensaje;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = m_hIns;
wc.hIcon = LoadIcon(NULL, (LPCTSTR)IDI_APPLICATION);
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.hbrBackground = (HBRUSH)CreateSolidBrush(m_fond);
wc.lpszClassName = ClaseVentana;

a = RegisterClass(&wc);

pCreando = this;

  int x_posX = (int)m_posX;
int x_posY = (int)m_posY;
int x_tamX = (int)m_tamX;
int x_tamY = (int)m_tamY;

DWORD m_hPen;
  if (m_bord == 1)
  {
  m_hPen = SS_LEFT | WS_BORDER | WS_CHILD| WS_VISIBLE;
  }
  else
  {
  m_hPen = SS_LEFT | WS_CHILD| WS_VISIBLE;
  }

m_vHij = CreateWindow(
ClaseVentana,
"TSay",
m_hPen,
    x_posY,
    x_posX,
    x_tamX,
    x_tamY,
m_vent,
    NULL,
    m_hIns,
    NULL);

if(m_vHij)
{
ShowWindow(m_vHij, 5);
    UpdateWindow(m_vHij);
}
}

TSay::~TSay()
{
}

LRESULT CALLBACK TSay::WindowProc(UINT msg, WPARAM wp, LPARAM lp)
{
HDC dc  = GetDC(m_vHij);
PAINTSTRUCT ps;
RECT rc;
    HRGN bgRgn;
    HBRUSH hBrush;
    HPEN hPen;
    HGDIOBJ old;

  int x_posX = (int)m_posX;
int x_posY = (int)m_posY;
int x_tamX = (int)m_tamX;
int x_tamY = (int)m_tamY;

switch(msg)
{
case WM_PAINT:
    dc = BeginPaint (m_vHij, &ps);
SetRect (&rc, 0, 0, x_tamX, x_tamY);
bgRgn = CreateRectRgnIndirect(&rc);
    hBrush = CreateSolidBrush(m_fond);
    FillRgn(dc, bgRgn, hBrush);
SetBkMode    (dc, m_fond);
SetTextColor (dc, m_escr);
// old = SelectObject(dc, m_letr);
switch (m_alin)
    {
      case 0:
    DrawText(dc, m_pint, lstrlen(m_pint), &rc, DT_LEFT | DT_VCENTER | DT_SINGLELINE);
    break;
      case 1:
    DrawText(dc, m_pint, lstrlen(m_pint), &rc, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
    break;
      case 2:
    DrawText(dc, m_pint, lstrlen(m_pint), &rc, DT_RIGHT | DT_VCENTER | DT_SINGLELINE);
    break;
}
//     SelectObject(dc, old);
// ReleaseDC(m_vHij, dc);

// DeleteObject(old);
DeleteObject(bgRgn);
    DeleteObject(hBrush);
    DeleteObject(hPen);
    EndPaint (m_vHij, &ps);

        SendMessage(m_vHij, WM_FONTCHANGE, (WPARAM)m_letr, 1);
        RedrawWindow(m_vHij,NULL,NULL,RDW_INVALIDATE | RDW_INTERNALPAINT);

break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(msg, wp, lp);
}
return 0;
}

//------------------------
TSay * TSay::pCreando;
//------------------------
LRESULT CALLBACK TSay::PrimerMensaje(HWND m_vHij, UINT msg, WPARAM wp, LPARAM lp)
{
pCreando->_Conectar(m_vHij);

return pCreando->WindowProc(msg, wp, lp);
}

void TSay::_Conectar(HWND m_vHij)
{
DWORD   dw;
m_hWnd = m_vHij;
dw = InitThunk(this);
::SetWindowLong(m_vHij, GWL_WNDPROC, dw);
}

LRESULT  TSay::DefWindowProc(UINT msg, WPARAM wp, LPARAM lp)
{
return m_lpOldProc ?
::CallWindowProc(m_lpOldProc, m_hWnd, msg, wp, lp) :
::DefWindowProc(m_hWnd, msg, wp, lp);
}


Y viene llamada desde la clase principal que es:

Código:
#include <windows.h>
#include <iostream>
#include <tlhelp32.h>
#include <string>
#include "CHSoft.h"
#include <ctype.h>
#include <stdio.h>
#include "procesos.h"

using namespace std;

LRESULT CALLBACK WinPro (HWND, UINT , WPARAM, LPARAM);
LRESULT CALLBACK WinPr2 (HWND, UINT , WPARAM, LPARAM);
LRESULT CALLBACK WinPr3 (HWND, UINT , WPARAM, LPARAM);
void InsertarMenu(HWND);
void Inicio(HWND);
bool Exists(CHAR* fname);
bool ProcessRunning( const char* name );
void Salida();
void Pantalla(HWND, HINSTANCE);
// int TSay(double, double, const char*, HWND, HFONT, COLORREF, COLORREF, double, double, int, int, HWND);

int APIENTRY WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszArgument, int nFunsterStil)
{

    HWND oVentPrinc;
    MSG msg;
    WNDCLASSEX wincl;
// EXTERN HINSTANCE hInst;

    wincl.hInstance = hInstance;
    wincl.lpszClassName = "Principal";
    wincl.lpfnWndProc = WinPro;
    wincl.style = CS_HREDRAW | CS_VREDRAW;
    wincl.cbSize = sizeof (WNDCLASSEX);
    wincl.hIcon = LoadIcon (hInstance, "CHSIcono");
    wincl.hIconSm = LoadIcon (hInstance, "CHSIcono");
    wincl.hCursor = LoadCursor (NULL, IDC_ARROW);
    wincl.lpszMenuName = NULL;
    wincl.cbClsExtra = 0;
    wincl.cbWndExtra = 0;
    wincl.hbrBackground = (HBRUSH)CreateSolidBrush(RGB(255,255,255));

    if(!RegisterClassEx(&wincl))  return 0;


    wincl.hInstance = hInstance;
    wincl.lpszClassName = "Hija";
    wincl.lpfnWndProc = WinPr2;
    wincl.style = CS_HREDRAW | CS_VREDRAW;
    wincl.cbSize = sizeof (WNDCLASSEX);
    wincl.hCursor = LoadCursor (NULL, IDC_ARROW);
    wincl.lpszMenuName = NULL;
    wincl.cbClsExtra = 0;
    wincl.cbWndExtra = 0;
    wincl.hbrBackground = (HBRUSH)CreateSolidBrush(RGB(150,150,150));

    if(!RegisterClassEx(&wincl))  return 0;

    wincl.hInstance = hInstance;
    wincl.lpszClassName = "Hijo";
    wincl.lpfnWndProc = WinPr3;
    wincl.style = CS_HREDRAW | CS_VREDRAW;
    wincl.cbSize = sizeof (WNDCLASSEX);
    wincl.hCursor = LoadCursor (NULL, IDC_ARROW);
    wincl.lpszMenuName = NULL;
    wincl.cbClsExtra = 0;
    wincl.cbWndExtra = 0;
    wincl.hbrBackground = (HBRUSH)CreateSolidBrush(RGB(150,150,150));

    if(!RegisterClassEx(&wincl))  return 0;

    oVentPrinc = CreateWindowEx(
                 0,
                 "Principal",
                 wtex001,
                 WS_OVERLAPPEDWINDOW | WS_HSCROLL | WS_VSCROLL | WS_MAXIMIZE,
                 CW_USEDEFAULT,
                 CW_USEDEFAULT,
                 800,
                 600,
                 HWND_DESKTOP,
                 NULL,
                 hInstance,
                 NULL);

Inicio(oVentPrinc);

HWND oDlgVen;

    oDlgVen    = CreateWindowEx(
                 0,
                 "Hija",
                 wtex001,
                 WS_DLGFRAME | WS_CHILD | WS_VISIBLE,
                 100*TamPan,
                  20*TamPan,
                 1080*TamPan,
                 710*TamPan,
                 oVentPrinc,
                 NULL,
                 hInstance,
                 NULL);

HWND oDlgBro;

    oDlgBro    = CreateWindowEx(
                 0,
                 "Hijo",
                 wtex001,
                 WS_DLGFRAME | WS_CHILD | WS_VISIBLE,
                 100*TamPan,
                  20*TamPan,
                 1080*TamPan,
                 710*TamPan,
                 oVentPrinc,
                 NULL,
                 hInstance,
                 NULL);

SendMessage(oVentPrinc,WM_SETFONT,(WPARAM)oFont,MAKELPARAM(true,0));

Inicio(oVentPrinc);
    InsertarMenu(oVentPrinc);
    ShowWindow(oVentPrinc, SW_SHOWMAXIMIZED);
    ShowWindow(oDlgVen, SW_SHOW);
    ShowWindow(oDlgBro, SW_HIDE);
    UpdateWindow(oVentPrinc);

    Pantalla(oDlgVen, hInstance);

    // RedrawWindow(m_vHij,NULL,NULL,RDW_INVALIDATE | RDW_INTERNALPAINT);

    while(TRUE == GetMessage(&msg, NULL, 0, 0))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
    return msg.wParam;
}

LRESULT CALLBACK WinPro(HWND oVentPrinc, UINT msg, WPARAM wParam, LPARAM lParam)
{
    switch (msg)
    {
    case WM_COMMAND:
           switch(LOWORD(wParam))
   {
              case CYEENT:
                 MessageBox(oVentPrinc, wtex001, wtex022, MB_OK);
                 break;
              case CYEMAN:
                 MessageBox(oVentPrinc, wtex002, wtex023, MB_OK);
                 break;
              case CYELIC:
                 MessageBox(oVentPrinc, wtex003, wtex024, MB_OK);
                 break;
              case CYEDEM:
                 MessageBox(oVentPrinc, wtex004, wtex025, MB_OK);
                 break;
              case CYERES:
                 MessageBox(oVentPrinc, wtex005, wtex026, MB_OK);
                 break;
              case NYSENT:
                 MessageBox(oVentPrinc, wtex006, wtex027, MB_OK);
                 break;
              case NYSMAN:
                 MessageBox(oVentPrinc, wtex007, wtex028, MB_OK);
                 break;
              case NYSLIC:
                 MessageBox(oVentPrinc, wtex008, wtex029, MB_OK);
                 break;
              case NYSDEM:
                 MessageBox(oVentPrinc, wtex009, wtex030, MB_OK);
                 break;
              case NYSRES:
                 MessageBox(oVentPrinc, wtex010, wtex031, MB_OK);
                 break;
              case FYVENT:
                 MessageBox(oVentPrinc, wtex011, wtex032, MB_OK);
                 break;
              case FYVMAN:
                 MessageBox(oVentPrinc, wtex012, wtex033, MB_OK);
                 break;
              case FYVLIC:
                 MessageBox(oVentPrinc, wtex013, wtex034, MB_OK);
                 break;
              case FYVDEM:
                 MessageBox(oVentPrinc, wtex014, wtex035, MB_OK);
                 break;
              case FYVRES:
                 MessageBox(oVentPrinc, wtex015, wtex036, MB_OK);
                 break;
              case PAGWEB:
                 MessageBox(oVentPrinc, wtex016, wtex037, MB_OK);
                 break;
              case LICENC:
                 MessageBox(oVentPrinc, wtex017, wtex038, MB_OK);
                 break;
              case COMUNI:
                 MessageBox(oVentPrinc, wtex018, wtex039, MB_OK);
                 break;
              case CONSOL:
                 MessageBox(oVentPrinc, wtex019, wtex040, MB_OK);
                 break;
              case AYUPRO:
                 MessageBox(oVentPrinc, wtex020, wtex041, MB_OK);
                 break;
  case SALPRO:
       Salida();
       break;
           }
           break;
        case WM_DESTROY:
           Salida();
           break;
        default:
           return DefWindowProc(oVentPrinc, msg, wParam, lParam);
    case WM_SIZE:
    {
          RECT rWindow;
          GetWindowRect( oVentPrinc, &rWindow );
          int nHt = rWindow.right - rWindow.left;
          int nWi = rWindow.bottom - rWindow.top;
          if ((nHt > (1200*TamPan)) | (nWi >= (800*TamPan)))
            ShowScrollBar(oVentPrinc, SB_BOTH, FALSE);
          else
    ShowScrollBar(oVentPrinc, SB_BOTH, TRUE);
        }
    }
    return 0;
}

LRESULT CALLBACK WinPr2(HWND oDlgVen, UINT msg2, WPARAM wParam, LPARAM lParam)
{
HINSTANCE hInst;
    switch (msg2)
    {
    case WM_DESTROY:
           PostQuitMessage(0);
           break;
        default:
           return DefWindowProc(oDlgVen, msg2, wParam, lParam);
    }
    return 0;
}

LRESULT CALLBACK WinPr3(HWND oDlgBro, UINT msg3, WPARAM wParam, LPARAM lParam)
{
    switch (msg3)
    {
        case WM_DESTROY:
           PostQuitMessage(0);
           break;
        default:
           return DefWindowProc(oDlgBro, msg3, wParam, lParam);
    }
    return 0;
}

void Salida()
{
    PostQuitMessage(0);
}

void InsertarMenu(HWND oVent)
{
   HMENU hMenu01, hMenu02, hMenu03, hMenu04;

   hMenu01 = CreateMenu();
   hMenu02 = CreateMenu();
   hMenu03 = CreateMenu();
   hMenu04 = CreateMenu();

   switch (TipCyE)
    {
      case 1:
        AppendMenu(hMenu02, MF_STRING, CYEENT, wtex015);
        AppendMenu(hMenu02, MF_STRING, CYEMAN, wtex018);
        AppendMenu(hMenu02, MF_STRING, CYELIC, wtex019);
        break;
      case 2:
        AppendMenu(hMenu02, MF_STRING, CYEDEM, wtex039);
        break;
      case 3:
        AppendMenu(hMenu02, MF_STRING, CYEDEM, wtex039);
        AppendMenu(hMenu02, MF_STRING, CYERES, wtex048);
        break;
    }
   switch (TipNyS)
    {
      case 1:
        AppendMenu(hMenu03, MF_STRING, NYSENT, wtex015);
        AppendMenu(hMenu03, MF_STRING, NYSMAN, wtex018);
        AppendMenu(hMenu03, MF_STRING, NYSLIC, wtex019);
        break;
      case 2:
        AppendMenu(hMenu03, MF_STRING, NYSDEM, wtex040);
        break;
      case 3:
        AppendMenu(hMenu03, MF_STRING, NYSDEM, wtex040);
        AppendMenu(hMenu03, MF_STRING, NYSRES, wtex048);
        break;
    }
   switch (TipFyV)
    {
      case 1:
        AppendMenu(hMenu04, MF_STRING, FYVENT, wtex015);
        AppendMenu(hMenu04, MF_STRING, FYVMAN, wtex018);
        AppendMenu(hMenu04, MF_STRING, FYVLIC, wtex019);
        break;
      case 2:
        AppendMenu(hMenu04, MF_STRING, FYVDEM, wtex041);
        break;
      case 3:
        AppendMenu(hMenu04, MF_STRING, FYVDEM, wtex041);
        AppendMenu(hMenu04, MF_STRING, FYVRES, wtex048);
        break;
    }

   AppendMenu(hMenu01, MF_STRING | MF_POPUP, (UINT)hMenu02, wtex002);
   AppendMenu(hMenu01, MF_STRING | MF_POPUP, (UINT)hMenu03, wtex003);
   AppendMenu(hMenu01, MF_STRING | MF_POPUP, (UINT)hMenu04, wtex004);
   AppendMenu(hMenu01, MF_STRING           , PAGWEB       , wtex008);
   AppendMenu(hMenu01, MF_STRING           , LICENC       , wtex009);
   AppendMenu(hMenu01, MF_STRING           , COMUNI       , wtex010);
   AppendMenu(hMenu01, MF_STRING           , CONSOL       , wtex011);
   AppendMenu(hMenu01, MF_STRING           , AYUPRO       , wtex012);
   AppendMenu(hMenu01, MF_STRING           , SALPRO       , wtex013);
   SetMenu(oVent, hMenu01);
}

void Inicio(HWND oVentPrinc)
{
  if (Exists("CHSoft2.exe"))
  {
   PostQuitMessage(0);
   ShellExecute(GetDesktopWindow(), "open", "cambio.bat", NULL, NULL, SW_SHOWNORMAL);
  }
  else
  {
if (ProcessRunning("CHSoft.exe"))
      PostQuitMessage(0);
    else
    {
      if (Exists("cyew32.exe"))
        TipCyE = 1;
      else
      {
        if (Exists("cyew32.res"))
          TipCyE = 3;
    else
          TipCyE = 2;
  }
      if (Exists("nysw32.exe"))
        TipNyS = 1;
      else
      {
if (Exists("nysw32.res"))
          TipNyS = 3;
        else
          TipNyS = 2;
      }
      if (Exists("fyvw32.exe"))
        TipFyV = 1;
      else
      {
        if (Exists("fyvw32.res"))
          TipFyV = 3;
        else
          TipFyV = 2;
      }
      if ((ych / 800) < (xch / 1280))
        TamPan = ych / 800;
      else
        TamPan = xch / 1280;

      TamLet = 18 * TamPan;
      OSVERSIONINFO osv    = { sizeof(OSVERSIONINFO) };
      LPTSTR TipLet = TEXT("SEGOE UI");
      if (osv.dwPlatformId == VER_PLATFORM_WIN32_NT && osv.dwMajorVersion >= 5)
      {
    TipLet = TEXT("Times New Roman");
      }
      oFont = CreateFont(TamLet  , 0, 0, 0, 400, FALSE, FALSE, FALSE, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH | FF_DONTCARE, TipLet);
      oFon2 = CreateFont(TamLet  , 0, 0, 0, 400, FALSE, FALSE, FALSE, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH | FF_DONTCARE, TipLet);
      oFon3 = CreateFont(TamLet+9, 0, 0, 0, 800, FALSE, FALSE, FALSE, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH | FF_DONTCARE, TipLet);
    }
  }
}

bool Exists(CHAR* fname)
{
  if(INVALID_FILE_ATTRIBUTES == GetFileAttributes(fname) && GetLastError()==ERROR_FILE_NOT_FOUND)
     return false;
  return true;
}

bool ProcessRunning( const char* name )
{
HANDLE SnapShot = CreateToolhelp32Snapshot( TH32CS_SNAPPROCESS, 0 );
int siono = 0;
if( SnapShot == INVALID_HANDLE_VALUE )
return false;
PROCESSENTRY32 procEntry;
procEntry.dwSize = sizeof( PROCESSENTRY32 );
if( !Process32First( SnapShot, &procEntry ) )
return false;
do
{
if( strcmp( procEntry.szExeFile, name ) == 0 )
  {
  if (siono == 0)
  {
    siono = 1;
  }
  else
return true;
          }
}
while( Process32Next( SnapShot, &procEntry ) );
return false;
};

void Pantalla(HWND oDlgVen, HINSTANCE hInst)
{
  HWND oPant,oPan2,oPan4,oPan401,oPan402,oMenPan,oMenPan01,oMenPan02,oMenPan03,oMenPan04,oMenPan05,oMenPan06,oMenPan07,oMenPan08,oMenPan09;

  TSay oSay = TSay(hInst, 10*TamPan, 30*TamPan, wtex000, oDlgVen, oFont, escri1, fondo2,1020*TamPan, 77*TamPan, 0, 1, oPan4);
  oSay = TSay(hInst, 35*TamPan,340*TamPan, wtex000, oDlgVen, oFon3, escri1, fondo1, 630*TamPan, 30*TamPan, 1, 1, oPan401);
  oSay = TSay(hInst, 36*TamPan,341*TamPan, wtex001, oDlgVen, oFon3, escri3, fondo1, 628*TamPan, 28*TamPan, 0, 1, oPan402);

  oSay = TSay(hInst, 95*TamPan, 30*TamPan, wtex000, oDlgVen, oFont, escri3, fondo1, 245*TamPan,555*TamPan, 0, 0, oMenPan);
  oSay = TSay(hInst,117*TamPan, 45*TamPan, wtex002, oDlgVen, oFont, escri1, fondo1, 243*TamPan, 28*TamPan, 0, 0, oMenPan01);
  oSay = TSay(hInst,147*TamPan, 45*TamPan, wtex003, oDlgVen, oFont, escri1, fondo1, 243*TamPan, 28*TamPan, 0, 0, oMenPan02);
  oSay = TSay(hInst,177*TamPan, 45*TamPan, wtex004, oDlgVen, oFont, escri1, fondo1, 243*TamPan, 28*TamPan, 0, 0, oMenPan03);
  oSay = TSay(hInst,207*TamPan, 45*TamPan, wtex008, oDlgVen, oFont, escri1, fondo1, 243*TamPan, 28*TamPan, 0, 0, oMenPan04);
  oSay = TSay(hInst,237*TamPan, 45*TamPan, wtex009, oDlgVen, oFont, escri1, fondo1, 243*TamPan, 28*TamPan, 0, 0, oMenPan05);
  oSay = TSay(hInst,267*TamPan, 45*TamPan, wtex010, oDlgVen, oFont, escri1, fondo1, 243*TamPan, 28*TamPan, 0, 0, oMenPan06);
  oSay = TSay(hInst,297*TamPan, 45*TamPan, wtex011, oDlgVen, oFont, escri1, fondo1, 243*TamPan, 28*TamPan, 0, 0, oMenPan07);
  oSay = TSay(hInst,327*TamPan, 45*TamPan, wtex012, oDlgVen, oFont, escri1, fondo1, 243*TamPan, 28*TamPan, 0, 0, oMenPan08);
  oSay = TSay(hInst,357*TamPan, 45*TamPan, wtex013, oDlgVen, oFont, escri1, fondo1, 243*TamPan, 28*TamPan, 0, 0, oMenPan09);

  oSay = TSay(hInst, 95*TamPan,300*TamPan, wtex000, oDlgVen, oFont, escri1, fondo2, 750*TamPan,555*TamPan, 1, 0, oPant);
  oSay = TSay(hInst,105*TamPan, 30*TamPan, wtex000, oDlgVen, oFont, escri1, fondo2, 280*TamPan, 25*TamPan, 1, 0, oPan2);
    UpdateWindow(oDlgVen);
}

Todas las llamadas a la clase están al final del todo en Pantalla()

Me podéis ayudar para saber que error me está dando.

Un saludo

Carlos


Título: Re: Salida al Sistema Siin notificar error.
Publicado por: AlbertoBSD en 25 Mayo 2016, 15:01 pm
Hola muchas veces cuando sale eae tipo de ventana es por que el programa tiene un error al manejar la memoria.

El programa esta algo largo y sin la etiqueta de code = c me da flojera leer el codigo... :silbar: