|
256
|
Programación / Programación C/C++ / Problema con WINAPI
|
en: 25 Agosto 2011, 15:27 pm
|
Bueno, pues hoy empeze con la WINAPI (un rollazo por cierto ) y tengo un error al copilar un sencillo menu en CODE::BLOCKS. No se donde esta el error asi que agradecería que me lo dijesen. #include <windows.h> const int MENSAJE = 1000; /* Declare Windows procedure */ LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);
/* Make the class name into a global variable */ char szClassName[ ] = "CodeBlocksWindowsApp";
int WINAPI WinMain (HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPSTR lpszArgument, int nCmdShow) { HWND hwnd; /* This is the handle for our window */ MSG messages; /* Here messages to the application are saved */ WNDCLASSEX wincl; /* Data structure for the windowclass */
/* The Window structure */ wincl.hInstance = hThisInstance; wincl.lpszClassName = szClassName; wincl.lpfnWndProc = WindowProcedure; /* This function is called by windows */ wincl.style = CS_DBLCLKS; /* Catch double-clicks */ wincl.cbSize = sizeof (WNDCLASSEX);
/* Use default icon and mouse-pointer */ wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION); wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION); wincl.hCursor = LoadCursor (NULL, IDC_ARROW); wincl.lpszMenuName = NULL; /* No menu */ wincl.cbClsExtra = 0; /* No extra bytes after the window class */ wincl.cbWndExtra = 0; /* structure or the window instance */ /* Use Windows's default colour as the background of the window */ wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND;
/* Register the window class, and if it fails quit the program */ if (!RegisterClassEx (&wincl)) return 0;
/* The class is registered, let's create the program*/ hwnd = CreateWindowEx ( 0, /* Extended possibilites for variation */ szClassName, /* Classname */ "Pruebas tranquiiilo", /* Title Text */ WS_OVERLAPPEDWINDOW, /* default window */ CW_USEDEFAULT, /* Windows decides the position */ CW_USEDEFAULT, /* where the window ends up on the screen */ 544, /* The programs width */ 375, /* and height in pixels */ HWND_DESKTOP, /* The window is a child-window to desktop */ NULL, /* No menu */ hThisInstance, /* Program Instance handler */ NULL /* No Window Creation data */ );
/* Make the window visible on the screen */ ShowWindow (hwnd, nCmdShow);
/* Run the message loop. It will run until GetMessage() returns 0 */ while (GetMessage (&messages, NULL, 0, 0)) { /* Translate virtual-key messages into character messages */ TranslateMessage(&messages); /* Send message to WindowProcedure */ DispatchMessage(&messages); }
/* The program return-value is 0 - The value that PostQuitMessage() gave */ return messages.wParam; }
/* This function is called by the Windows function DispatchMessage() */
LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) /* handle the messages */ { case WM_CREATE:
HMENU menu1,menu2;
menu1= CreateMenu(); menu2= CreateMenu();
AppendMenu (menu2, MF_STRING, MENSAJE, "mensaje");
AppendMenu (menu1, MF_STRING | MF_POPUP| (UINT) menu2, "menu");
SetMenu (hwnd, menu1);
break;
case WM_DESTROY: PostQuitMessage (0); /* send a WM_QUIT to the message queue */ break; default: /* for messages that we don't deal with */ return DefWindowProc (hwnd, message, wParam, lParam); }
return 0; } Ese es el codigo entero, y la parte donde me falla es esta:ç switch (message) /* handle the messages */ { case WM_CREATE:
HMENU menu1,menu2;
menu1= CreateMenu(); menu2= CreateMenu();
AppendMenu (menu2, MF_STRING, MENSAJE, "mensaje");
AppendMenu (menu1, MF_STRING | MF_POPUP| (UINT) menu2, "menu");
SetMenu (hwnd, menu1);
break;
case WM_DESTROY: PostQuitMessage (0); /* send a WM_QUIT to the message queue */ break; default: /* for messages that we don't deal with */ return DefWindowProc (hwnd, message, wParam, lParam); }
return 0; Y la verdad no encuentro el error, espero que vosotros me lo digais. Gracias y Un salu2! Por cierto el error que me da es este: C:\Users\Celia\Pictures\iPod Photo Cache\GUI\main.cpp||In function 'LRESULT WindowProcedure(HWND__*, UINT, WPARAM, LPARAM)':| C:\Users\Celia\Pictures\iPod Photo Cache\GUI\main.cpp|87|error: invalid conversion from 'const char*' to 'UINT_PTR'| C:\Users\Celia\Pictures\iPod Photo Cache\GUI\main.cpp|87|error: too few arguments to function 'BOOL AppendMenuA(HMENU__*, UINT, UINT_PTR, const CHAR*)'| c:\mingw\bin\..\lib\gcc\mingw32\4.5.2\..\..\..\..\include\winuser.h|3462|note: declared here| ||=== Build finished: 3 errors, 0 warnings ===|
|
|
|
259
|
Programación / Programación C/C++ / Re: Duda con C++
|
en: 25 Agosto 2011, 12:22 pm
|
Muchas Gracias pero yo en Ingles nose suficiente como para leerme un libro de C++ (tendre que dar gracias si me entero cuando lo leo en español ) En fin, si alguien puede recomendarme algun libro de esa pagina que dijo hack-11 y yo tambien puse se los agradeceria. Pero eso si, que sea en español. Es que los libros algunos estan caros y no quiero gastar el dinero para nada, por eso les pido ayuda. Un salu2!
|
|
|
260
|
Programación / Programación C/C++ / Re: Duda con C++
|
en: 25 Agosto 2011, 00:05 am
|
He estado mirando la pagina que puso hack-11 ( http://www.agapea.com/C---cn277p1i.htm) y esta bastante bien estoy pensando en comprar un libro alli, ya que el 1 de septiembre es mi cumple y seria un buen regalo unos cuantos libros. Me podrían recomendar alguno tendiendo en cuenta que mi nivel es basico? PD: mis conocimientos son: variables, entrada de datos, tipos de datos, crear funciones, unas cuantas sentencias como if, if con end, switch, while y do while y algo mas por ahi, pero nada mas avanzado de eso. Si me sirviera algun libro a partir de los conocimientos que tengo me gustaria que me lo recomendaseis. Un salu2!
|
|
|
|
|
|
|