http://www.todopcsymas.foroactivo.com.es | Foro de informática e internet | version 1. beta
Regístrate en todopcsymas para acceder a todo el contenido


Todopcsymas foro de informática a internet | Nueva generación de informáticos | Contamos con los mejores programadores, diseñadores e informáticos del momento | Tutoriales, programas, consejos, noticias, actualidad, programación y mucho más.. 100 % legal
 
ÍndicePortalCalendarioFAQMiembrosGrupos de UsuariosRegistrarseConectarse
Últimos temas
» Tutorial - instalar foro phpbb3 completamente desde 0
Mar Mar 17, 2009 10:15 pm por j.garcia2

» Firefox 3.0.7 , actualizacion de seguridad y estabilidad
Mar Mar 17, 2009 6:09 am por deimy

» Tutorial de creación de páginas web con Dreamweaver CS3
Lun Mar 16, 2009 8:29 pm por j.garcia2

» Tutorial - 99 formas de acelerar un ordenador
Lun Mar 16, 2009 8:24 pm por j.garcia2

» ¿Que debes hacer para afiliarte a todopcsymas?
Lun Mar 16, 2009 8:02 pm por j.garcia2

» Muy buenas a todos
Lun Mar 16, 2009 7:54 pm por j.garcia2

» Damos puestos de moderador
Lun Mar 16, 2009 5:47 pm por j.garcia2

» Vulnerabilidades en Google Chrome (IV)
Dom Mar 15, 2009 2:34 pm por j.garcia2

» Vulnerabilidades en Google Chrome (III)
Dom Mar 15, 2009 2:33 pm por j.garcia2

» Vulnerabilidades en Google Chrome (II)
Dom Mar 15, 2009 2:31 pm por j.garcia2

» Vulnerabilidades en Google Chrome (I)
Dom Mar 15, 2009 2:30 pm por j.garcia2

» Mi Foro de bichos
Dom Mar 15, 2009 2:22 pm por j.garcia2

» Mas de 100 links de utilidad
Dom Mar 15, 2009 4:23 am por j.garcia2

» Windows live messenger 2009
Dom Mar 15, 2009 4:15 am por j.garcia2

» Creador de nicks
Dom Mar 15, 2009 4:12 am por j.garcia2

» Winamp portable
Dom Mar 15, 2009 3:52 am por j.garcia2

» FIreworks portable muy bueno ;)
Dom Mar 15, 2009 3:50 am por j.garcia2

» ¿Que es visual basic o para que sirve?
Dom Mar 15, 2009 3:26 am por j.garcia2

» Tutoriales c++ gracias a linkgl
Dom Mar 15, 2009 3:25 am por j.garcia2

» C ++ [INTRODUCCION]
Dom Mar 15, 2009 3:23 am por j.garcia2

¿Quién está en línea?
En total hay 2 usuarios en línea: 0 Registrados, 0 Ocultos y 2 Invitados

Ninguno

La mayor cantidad de usuarios en línea fue 41 el Miér Ene 15, 2014 1:51 pm.
Estadísticas
Tenemos 432 miembros registrados.
El último usuario registrado es deimy

Nuestros miembros han publicado un total de 1803 mensajes en 623 argumentos.
Mejores posteadores
j.garcia2
 
Cristhian
 
Lana
 
pabluc
 
meson21
 
chema93mx
 
petropuchas
 
davidamc
 
ignacio34
 
Gaston
 
Palabras claves
Conectarse
Nombre de Usuario:
Contraseña:
Entrar automáticamente en cada visita: 
:: Recuperar mi contraseña
Buscar
 
 

Resultados por:
 
Rechercher Búsqueda avanzada
Sondeo
Noviembre 2018
LunMarMiérJueVieSábDom
   1234
567891011
12131415161718
19202122232425
2627282930  
CalendarioCalendario

Comparte | 
 

 [ADVERTENCIA] C++

Ir abajo 
AutorMensaje
j.garcia2
Admin
Admin
avatar

Cantidad de envíos : 742
Edad : 28
Localización : Madrid - España
Puntos : 9
Reputación : 0
Fecha de inscripción : 04/06/2008

MensajeTema: [ADVERTENCIA] C++   Dom Mar 15, 2009 3:18 am

[ADVERTENCIA] C++

Hola, bueno quiero dar una advertencia antes de seguir este tuto.
Quiero avisar que este lenguaje es MUUUUUY MUUUY DIFICL es el lenguaje
mas dificil que jamas eh conocido. Si no entendieron nada de lo
anterior no continues por que acabaras con el cerebro explotando... (no
lo digo por asustar) es mas aqui les dejo un editor de texto que hice
masomeno con ayuda de cientos de tutoriales:

Primero Cree

Main.c
#include

#include "Main.h"

static char g_szClassName[] = "MyWindowClass";
static HINSTANCE g_hInst = NULL;

#define IDC_MAIN_TEXT 1001

BOOL LoadFile(HWND hEdit, LPSTR pszFileName)
{
HANDLE hFile;
BOOL bSuccess = FALSE;

hFile = CreateFile(pszFileName, GENERIC_READ, FILE_SHARE_READ, NULL,
OPEN_EXISTING, 0, 0);
if(hFile != INVALID_HANDLE_VALUE)
{
DWORD dwFileSize;
dwFileSize = GetFileSize(hFile, NULL);
if(dwFileSize != 0xFFFFFFFF)
{
LPSTR pszFileText;
pszFileText = (LPSTR)GlobalAlloc(GPTR, dwFileSize + 1);
if(pszFileText != NULL)
{
DWORD dwRead;
if(ReadFile(hFile, pszFileText, dwFileSize, &dwRead, NULL))
{
pszFileText[dwFileSize] = 0; // no se abrio
if(SetWindowText(hEdit, pszFileText))
bSuccess = TRUE; // Trabajo
}
GlobalFree(pszFileText);
}
}
CloseHandle(hFile);
}
return bSuccess;
}

BOOL SaveFile(HWND hEdit, LPSTR pszNombredearchivo)
{
HANDLE hFile;
BOOL bSuccess = FALSE;

hFile = CreateFile(pszNombredearchivo, GENERIC_WRITE, 0, 0,
CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);
if(hFile != INVALID_HANDLE_VALUE)
{
DWORD dwTextLength;
dwTextLength = GetWindowTextLength(hEdit);
if(dwTextLength > 0)// No need to bother if there's no text.
{
LPSTR pszText;
pszText = (LPSTR)GlobalAlloc(GPTR, dwTextLength + 1);
if(pszText != NULL)
{
if(GetWindowText(hEdit, pszText, dwTextLength + 1))
{
DWORD dwWritten;
if(WriteFile(hFile, pszText, dwTextLength, &dwWritten, NULL))
bSuccess = TRUE;
}
GlobalFree(pszText);
}
}
CloseHandle(hFile);
}
return bSuccess;
}

BOOL DoFileOpenSave(HWND hwnd, BOOL bSave)
{
OPENFILENAME ofn;
char szFileName[MAX_PATH];

ZeroMemory(&ofn, sizeof(ofn));
szFileName[0] = 0;

ofn.lStructSize = sizeof(ofn);
ofn.hwndOwner = hwnd;
ofn.lpstrFilter = "Text Files (*.txt)\0*.txt\0All Files (*.*)\0*.*\0\0";
ofn.lpstrFile = szFileName;
ofn.nMaxFile = MAX_PATH;
ofn.lpstrDefExt = "txt";

if(bSave)
{
ofn.Flags = OFN_EXPLORER | OFN_PATHMUSTEXIST | OFN_HIDEREADONLY |
OFN_OVERWRITEPROMPT;

if(GetSaveFileName(&ofn))
{
if(!SaveFile(GetDlgItem(hwnd, IDC_MAIN_TEXT), szFileName))
{
MessageBox(hwnd, "No se pudo guardar", "Error",
MB_OK | MB_ICONEXCLAMATION);
return FALSE;
}
}
}
else
{
ofn.Flags = OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY;
if(GetOpenFileName(&ofn))
{
if(!LoadFile(GetDlgItem(hwnd, IDC_MAIN_TEXT), szFileName))
{
MessageBox(hwnd, "No se ha podido cargar el archivo.", "Error",
MB_OK | MB_ICONEXCLAMATION);
return FALSE;
}
}
}
return TRUE;
}

LRESULT CALLBACK WndProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam)
{
switch(Message)
{
case WM_CREATE:
CreateWindow("EDITAR", "",
WS_CHILD | WS_VISIBLE | WS_HSCROLL | WS_VSCROLL | ES_MULTILINE |
ES_WANTRETURN,
CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
hwnd, (HMENU)IDC_MAIN_TEXT, g_hInst, NULL);

SendDlgItemMessage(hwnd, IDC_MAIN_TEXT, WM_SETFONT,
(WPARAM)GetStockObject(DEFAULT_GUI_FONT), MAKELPARAM(TRUE, 0));
break;
case WM_SIZE:
if(wParam != SIZE_MINIMIZED)
MoveWindow(GetDlgItem(hwnd, IDC_MAIN_TEXT), 0, 0, LOWORD(lParam),
HIWORD(lParam), TRUE);
break;
case WM_SETFOCUS:
SetFocus(GetDlgItem(hwnd, IDC_MAIN_TEXT));
break;
case WM_COMMAND:
switch(LOWORD(wParam))
{
case CM_FILE_OPEN:
DoFileOpenSave(hwnd, FALSE);
break;
case CM_FILE_SAVEAS:
DoFileOpenSave(hwnd, TRUE);
break;
case CM_FILE_EXIT:
PostMessage(hwnd, WM_CLOSE, 0, 0);
break;
case CM_ABOUT:
MessageBox (NULL, "Editor de texto para windows !\n Por Linkgl" , "About...", 0);
}
break;
case WM_CLOSE:
DestroyWindow(hwnd);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd, Message, wParam, lParam);
}
return 0;
}


int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
{
WNDCLASSEX WndClass;
HWND hwnd;
MSG Msg;

g_hInst = hInstance;

WndClass.cbSize = sizeof(WNDCLASSEX);
WndClass.style = 0;
WndClass.lpfnWndProc = WndProc;
WndClass.cbClsExtra = 0;
WndClass.cbWndExtra = 0;
WndClass.hInstance = g_hInst;
WndClass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
WndClass.hCursor = LoadCursor(NULL, IDC_ARROW);
WndClass.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
WndClass.lpszMenuName = "MAINMENU";
WndClass.lpszClassName = g_szClassName;
WndClass.hIconSm = LoadIcon(NULL, IDI_APPLICATION);

if(!RegisterClassEx(&WndClass))
{
MessageBox(0, "REGISTRO DE WINDOWS FALLO!", "Error!",
MB_ICONEXCLAMATION | MB_OK | MB_SYSTEMMODAL);
return 0;
}

hwnd = CreateWindowEx(
WS_EX_CLIENTEDGE,
g_szClassName,
"EDITOR DE TEXTO LINKGL",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, CW_USEDEFAULT, 320, 240,
NULL, NULL, g_hInst, NULL);

if(hwnd == NULL)
{
MessageBox(0, "Error en la creacion!", "Error!",
MB_ICONEXCLAMATION | MB_OK | MB_SYSTEMMODAL);
return 0;
}

ShowWindow(hwnd, nCmdShow);
UpdateWindow(hwnd);

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


Luego

Main.h
#define CM_FILE_SAVEAS 9072
#define CM_FILE_EXIT 9071
#define CM_FILE_OPEN 9070
#define CM_ABOUT 9069


Tarde semanas y con ayuda! asi que seria mejor empezar por lenguajes menos complicados, pero si quieres seguir, adelante xD
Volver arriba Ir abajo
Ver perfil de usuario
 
[ADVERTENCIA] C++
Volver arriba 
Página 1 de 1.

Permisos de este foro:No puedes responder a temas en este foro.
http://www.todopcsymas.foroactivo.com.es | Foro de informática e internet | version 1. beta :: Programación :: c++-
Cambiar a: