/
Inicio :: Foros

 F.A.Q.F.A.Q.                  Conéctese para revisar sus mensajesConéctese para revisar sus mensajes   

Problemas con dev c++

 
      Índice del Foro elrincondelc.com -> Dev-C++
Ver tema anterior :: Ver siguiente tema  
AutorMensaje
Lupin



Registrado: 23 Jun 2007
Mensajes: 6

MensajePublicado: 23/06/2007 4:29 am
Título: Problemas con dev c++

Hola buenas, soy nuevo en esto de programacion.
Mi problema esta en que estoy haciendo una aplicacion de windows.
He intentado poner un menu donde salga la opcion de añadir i la de salir.
Este es el codigo fuente:

.cpp:

#include <windows.h>
#include "main.h"


LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);


char szClassName[ ] = "WindowsApp";

int WINAPI WinMain (HINSTANCE hThisInstance,
HINSTANCE hPrevInstance,
LPSTR lpszArgument,
int nFunsterStil)

{
HWND hwnd;
MSG messages;
WNDCLASSEX wincl;

wincl.hInstance = hThisInstance;
wincl.lpszClassName = szClassName;
wincl.lpfnWndProc = WindowProcedure;
wincl.style = CS_DBLCLKS;
wincl.cbSize = sizeof (WNDCLASSEX);


wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION);
wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION);
wincl.hCursor = LoadCursor (NULL, IDC_ARROW);
wincl.lpszMenuName = NULL;
wincl.cbClsExtra = 0;
wincl.cbWndExtra = 0;

wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND;

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

hwnd = CreateWindowEx (
0,
szClassName,
"M.A.S.D.E.L. Clan Beta.1",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
544,
375,
HWND_DESKTOP,
NULL,
hThisInstance,
NULL
);

ShowWindow (hwnd, nFunsterStil);

while (GetMessage (&messages, NULL, 0, 0))
{

TranslateMessage(&messages);

DispatchMessage(&messages);
}


return messages.wParam;
}



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

return 0;
}

.h:

#define CM_ARCHIVO_AÑADIR 101
#define CM_ARCUIVO_SALIR 100

.rc:

#include "main.h"

MAINMENU MENU
{
POPUP "&ARCHIVO"
{
MENUITEM "&AÑADIR"
MENUITEM SEPARATOR
MENUITEM "&SALIR"
}
}

Pero al compilar me da un error. si me pudieran ayudar. Gracias.
Volver arriba
yoshi28012007



Registrado: 10 Jul 2007
Mensajes: 1

MensajePublicado: 10/07/2007 9:02 pm
Título:

Espero q esto te Ayude:

void InsertarMenu(HWND win){
HMENU HMenu1;
HMENU HMenu2;

HMenu1= CreateMenu();
HMenu2= CreateMenu();
AppendMenu(HMenu2,MF_STRING,100,"&Principal");
AppendMenu(HMenu2,MF_SEPARATOR,0,NULL);
AppendMenu(HMenu2,MF_STRING,101,"&Ejecutar");
AppendMenu(HMenu1,MF_STRING|MF_POPUP,(UINT)HMenu2,"&Principal");
SetMenu(win,HMenu1);
}


Esta Funcion Luego La llamas arriba :
//SetMenu(hwnd,LoadMenu(instancia,"MENU")); //En caso q utilices otro.h
InsertarMenu(hwnd);
ShowWindow (hwnd, nFunsterStil);

//recuerda q primero dbes de declarar la funcion en zona de prototipo
_________________
dasdsada
Volver arriba
Dirección AIM Yahoo Messenger
rir3760



Registrado: 01 Oct 2004
Mensajes: 3841
Ubicación: Mexico

MensajePublicado: 11/07/2007 7:44 am
Título:

Un ejemplo sencillo (en ingles) sobre como incluir un menu definido en un archivo de recursos se encuentra en el capitulo 6 Menus and icons del tutorial TheForger Win32 API Tutorial.

Un saludo
_________________
The capacity to learn is a gift;
The ability to learn is a skill;
The willingness to learn is a choice.
--
Rebec of Ginaz
Volver arriba
Black_Tigger



Registrado: 14 Jul 2007
Mensajes: 3
Ubicación: Oaxca, MExico

MensajePublicado: 14/07/2007 10:41 am
Título: Espero te ayude

Hola Te voy amandar unos programas q te serviran Bastante

Enviame tu correo!!!

Esmas ponlo Visible mmmmmm
Volver arriba
Lupin



Registrado: 23 Jun 2007
Mensajes: 6

MensajePublicado: 14/11/2007 9:33 am
Título:

Gracias, por todo; pero aora tengo otro problema. Crying or Very sad
quiero poner un boton que cuando cierro el programa me avise. he podido colocar l boton de aceptar que cuando lo clickas t cierra l programa pero no consigo colocar el boton de cancelar para no cerrar el programa.

el codigo donde lo quiero colocar:

case WM_CLOSE:
MessageBox (NULL, "¿Estas seguro que quieres cerrar el programa?", "Atencion", MB_OK | MB_ICONINFORMATION);
if (MB_OK, DestroyWindow (hwnd) );
break;

gracias de nuevo
Volver arriba
rir3760



Registrado: 01 Oct 2004
Mensajes: 3841
Ubicación: Mexico

MensajePublicado: 14/11/2007 3:40 pm
Título:

Tendrias que explicarte con mas detalle y de una forma mas clara porque apenas se entiende lo que quieres hacer.

Los cambios a realizar a ese fragmento de codigo son:

1) Agregar el boton cancelar mediante la constante MB_OKCANCEL.
2) Almacenar el valor de retorno de la funcion.
3) Corregir el if ya que esta mal (no utilizas el operador de comparacion "==").
4) Comparar con los valores IDOK, IDCANCEL, etc. mas informacion sobre esto en (para variar) MSDN.

Un programa sencillo de ejemplo:
Código:
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>

int main(void)
{
   int r;
   
   r = MessageBox(NULL, "¿Cerrar?", "Test", MB_OKCANCEL);
   
   if (r == IDOK)
      puts("Se pulso \"OK\"");
   else /* r == IDCANCEL */
      puts("Se pulso \"Cancel\"");
   
   return EXIT_SUCCESS;
}


Un saludo
_________________
The capacity to learn is a gift;
The ability to learn is a skill;
The willingness to learn is a choice.
--
Rebec of Ginaz
Volver arriba
Lupin



Registrado: 23 Jun 2007
Mensajes: 6

MensajePublicado: 15/11/2007 10:05 am
Título:

perdonar. lo que en principio quiero hacer es que cuando se sale del programa, que pregunte: "estas seguro que quieres salir" i t dos opciones aceptar i cancelar.
esto ya lo he echo lo unico k m falta i no se ponerlo s un boton de cancelar.
Volver arriba
rir3760



Registrado: 01 Oct 2004
Mensajes: 3841
Ubicación: Mexico

MensajePublicado: 15/11/2007 3:34 pm
Título:

Para presentar el boton "Cancelar" en una caja de mensajes tienes que utilizar como ya te explique una de las constantes que indiquen ese boton como MB_OKCANCEL, MB_YESNOCANCEL, etc.

Un saludo
_________________
The capacity to learn is a gift;
The ability to learn is a skill;
The willingness to learn is a choice.
--
Rebec of Ginaz
Volver arriba
Lupin



Registrado: 23 Jun 2007
Mensajes: 6

MensajePublicado: 16/11/2007 5:33 am
Título:

OK. muchas gracias
Volver arriba
Lupin



Registrado: 23 Jun 2007
Mensajes: 6

MensajePublicado: 16/11/2007 5:50 am
Título:

Pues aora tngo otro problema Crying or Very sad . kiero qu cuando clike l boton d cancelar no m cierre l programa e intentado hacer varias pruebas pero no m sale. Os agradeceria muchisimo vuestra ayuda.

case WM_CLOSE:
MessageBox (NULL, "¿Estas seguro que quieres cerrar el programa?", "Atencion", MB_OK | MB_OKCANCEL | MB_ICONINFORMATION);
if (MB_OK, DestroyWindow (hwnd) );
else (NULL, MB_OKCANCEL);
break;

Gracias i un saludo.
Volver arriba
rir3760



Registrado: 01 Oct 2004
Mensajes: 3841
Ubicación: Mexico

MensajePublicado: 16/11/2007 6:36 am
Título:

En buen plan: necesitas seguir un buen curso (o leer un buen libro) sobre C porque tienes deficiencias muy importantes en tu manejo del lenguaje C.

En este lenguaje la coma es un operador secuencial y tiene una funcion pero esta NO ES la de comparar valores. Para comparar dos valores tienes que utilizar el operador de comparacion "==".

El fragmento de codigo corregido seria asi:
Código:
int r;

/* ... */

case WM_CLOSE:
   r = MessageBox(NULL, "...", "...", MB_OKCANCEL);
   
   if (r == MB_OK)
      DestroyWindow(hwnd);
   
   break;

/* ... */


Un saludo
_________________
The capacity to learn is a gift;
The ability to learn is a skill;
The willingness to learn is a choice.
--
Rebec of Ginaz
Volver arriba
Lupin



Registrado: 23 Jun 2007
Mensajes: 6

MensajePublicado: 16/11/2007 2:58 pm
Título:

Gracias por tu ayuda. respecto a las "deficiencias "(que tienes razon, por k ace poco que m adentre n la programacion) Very Happy me podrias pasar un buen manual o algun tutorial que fuera bueno, si lo tuvieras, que no fuera de conclase.com. gracias
Saludos
Volver arriba
rir3760



Registrado: 01 Oct 2004
Mensajes: 3841
Ubicación: Mexico

MensajePublicado: 16/11/2007 3:55 pm
Título:

Podrias empezar con el curso de este sitio y una vez terminado seguir con un libro. Dos libros muy buenos pero en ingles son:

C Programming Language, 2nd Edition
Brian W. Kernighan and Dennis Ritchie
Prentice Hall, Inc., 1988.
ISBN: 0-13-110362-8 (paperback), 0-13-110370-9 (hardback).

----

Pointers on C, 1st edition
Kenneth Reek
Addison Wesley, July 25, 1997
ISBN: 0673999866



Un saludo
_________________
The capacity to learn is a gift;
The ability to learn is a skill;
The willingness to learn is a choice.
--
Rebec of Ginaz
Volver arriba
      Índice del Foro elrincondelc.com -> Dev-C++
Página 1 de 1Todas las horas están en GMT - 8 Horas

 
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas

(c) ElRincondelC.com

Un proyecto de UrlanHeat.com