[c][codigo]screamer - completo api de windows

Iniciado por daryo, 12 Noviembre 2013, 02:16 AM

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

daryo

he tenido algunas problemas en code blocks y los resources y por eso no lo he habia acabado   :D

ejecutable - actualizado
bajar
imagen:


resource.rc

#include "resource.h"

IDB_BALL                BITMAP  DISCARDABLE     "ball.bmp"
IDR_Tortura             WAVE "g.wav"



resource.h

#define IDB_BALL                        101
#define IDR_Tortura                     1


main.cpp

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


   /*  Declare Windows procedure  */



   DWORD WINAPI sonar(LPVOID lpParameter)
   {
       PlaySound(MAKEINTRESOURCE(IDR_Tortura),GetModuleHandle(NULL),SND_RESOURCE);
       return 0;
   }
   HINSTANCE miinstance;

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

   /*  Make the class name into a global variable  */
   char szClassName[ ] = "aAdm";

   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 = CreateSolidBrush( RGB(0x00, 0x00, 0x00) );

      /* 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 */
             "zfa",       /* Title Text */
             WS_POPUP, /* 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, SW_SHOWMAXIMIZED);
      ShowCursor(FALSE);
   UpdateWindow(hwnd);
      /* 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()  */
   HBITMAP feisimo = NULL;
   DWORD dwThreadId;
   LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
   {
      switch (message)                  /* handle the messages */
      {
          case WM_CREATE:
              {
              HANDLE hThread = CreateThread (NULL,0,sonar,NULL,0,&dwThreadId);
              feisimo=LoadBitmap(GetModuleHandle(NULL), MAKEINTRESOURCE(IDB_BALL));
              if(feisimo == NULL)
              {
               MessageBox(hwnd, "no cargo feisimo :'( llora", "Error", MB_OK | MB_ICONEXCLAMATION);
              }
              }
              break;
          case WM_PAINT:
              {
                  BITMAP bm;
                  PAINTSTRUCT ps;
                  HDC hdc= BeginPaint(hwnd,&ps);
                  HDC hdcMem= CreateCompatibleDC(hdc);
                  HBITMAP hbmOld=(HBITMAP)SelectObject(hdcMem,feisimo);
                  GetObject(feisimo,sizeof(bm),&bm);
                  BitBlt(hdc,350,0,bm.bmWidth,bm.bmHeight,hdcMem,0,0,SRCCOPY);
                  SelectObject(hdcMem,hbmOld);
                  DeleteDC(hdcMem);
                  EndPaint(hwnd,&ps);
              }
              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;
   }


buenas

xaps

#1
Buen copy-paste:

Citarhttp://www.forosdelweb.com/f96/windows-api-crear-menu-1034745/
http://winprog.org/tutorial/es/bitmaps.html

Acuérdate de poner los créditos la próxima vez.

Saludos
"The programmers of tomorrow are the wizards of the future" - Gave Newel

daryo

#2
Cita de: xaps en 18 Noviembre 2013, 09:30 AM
Buen copy-paste:

Acuérdate de poner los créditos la próxima vez.

Saludos
hasta ahora veo esto pero queria aclarar
eso no es un screamer y no es de ahi que me base , ni siquiera estoy creando un menu.
antes de juzgar asegurate que lo de dices realmente es asi.

el segundo solo enseña a poner un bitmap pero no usa sonidos ni pantalla completa.
asi que si parte del codigo viene de ahi pero no por ello  es plagio ni mucho menos siendo asi cualquiera que usara la api de windows para hacer gui estaria haciendo plagio xD.

curioso que lo diga alguien que tiene a stallman en la foto de perfil  :P
buenas

xaps

#3
Cita de: daryo en 25 Noviembre 2013, 01:03 AM
hasta ahora veo esto pero queria aclarar
eso no es un screamer y no es de ahi que me base , ni siquiera estoy creando un menu.
antes de juzgar asegurate que lo de dices realmente es asi.

el segundo solo enseña a poner un bitmap pero no usa sonidos ni pantalla completa.
asi que si parte del codigo viene de ahi pero no por ello  es plagio ni mucho menos siendo asi cualquiera que usara la api de windows para hacer gui estaria haciendo plagio xD.

curioso que lo diga alguien que tiene a stallman en la foto de perfil  :P

No podemos hablar de plagio, ya que estamos hablando de código libre. Pero si que podemos hablar de copia literal. Y ya que el programa ha sido copiado en su totalidad y tan solo te has molestado en modificar un par de variables para darle tu "toque" personal, pues no estaría de más citar las fuentes.

Por cierto, ya me explicarás que tiene que ver mi imagen de perfil con esto.

Saludos
"The programmers of tomorrow are the wizards of the future" - Gave Newel

daryo

#4
ganas de fastidiar , yo la dije ese codigo no es el mismo puesto que lo unico que hace es cargar una imagen . no es un copy paste tal cual porque si solo hubiera cambiado nombre de variables hubiera sacado una ventanita comun y corriente de windows y hasta ahi con los botones de minimizar cerrar y maximizar.

no usa threads no carga sonidos desde resource , ni  cambia el fondo predeterminado gris de los programas de windows  a negro,ni tampoco esconde el mouse, si te fijas la mayoria de programas que usan api de windows (espero al menos conoscas que es eso)tienen una estructura muy similar.

por tus comentarios supongo que conoces bastante poco de esto ya que no estoy usando menus y el primer enlace que pusiste es sobre menus. asi que no veo otra razon de tu comentario que simplemente molestar.

PD:incluso me tome la molestia de editar la imagen y el sonido.



buenas

xaps

Cita de: daryo en 25 Noviembre 2013, 12:45 PM
ganas de fastidiar , yo la dije ese codigo no es el mismo puesto que lo unico que hace es cargar una imagen . no es un copy paste tal cual porque si solo hubiera cambiado nombre de variables hubiera sacado una ventanita comun y corriente de windows y hasta ahi con los botones de minimizar cerrar y maximizar.

no usa threads no carga sonidos desde resource , ni  cambia el fondo predeterminado gris de los programas de windows  a negro,ni tampoco esconde el mouse, si te fijas la mayoria de programas que usan api de windows (espero al menos conoscas que es eso)tienen una estructura muy similar.

por tus comentarios supongo que conoces bastante poco de esto ya que no estoy usando menus y el primer enlace que pusiste es sobre menus. asi que no veo otra razon de tu comentario que simplemente molestar.

PD:incluso me tome la molestia de editar la imagen y el sonido.

Increíble.

Ésto es de chiste, así que no haré más comentarios al respecto.

Saludos
"The programmers of tomorrow are the wizards of the future" - Gave Newel

daryo

#6
Cita de: xaps en 25 Noviembre 2013, 13:54 PM
Increíble.

Ésto es de chiste, así que no haré más comentarios al respecto.

Saludos
tienes razon no hace falta que demuestras mas tu ignorancia  :laugh:
buenas