Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Dwie Książki. Wady, Zalety?


Rekomendowane odpowiedzi

Opublikowano

Lepiej nie zaczynaj robić programów okienkowych tylko konsolowe.

Po 1. Ogarniesz się trochę w tym wszystkim.

Po 2. Jak zobaczysz kod z WinAPI to się osrasz że trzeba tyle pisać(polecam inne biblioteki).

Po 3. Jesteś nie cierpliwy.

Po 4. Programy okienkowe moim zdaniem nie zaliczają się do podstaw.

 

Jeśli nie pragniesz robić programów to zrozum, że bez nauki przynajmniej roku tego języka nic porządnego nie zdziałasz :)

 

EDIT:

 

@OmgLolNoob

I co rozmyśliłeś się to co podał @down ? :)

GrottyCracker22.png
Opublikowano

@up taaak 5 lat od razu

 

 

OmgLolNoob specjalnie dla Ciebie :

 

#include <windows.h>
#include <stdio.h>
#include <stdlib.h>

/*  Declare Windows procedure  */
LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);

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

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

{
   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 color 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 */
          "Okienko",       /* 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 */
          );
          CreateWindow("edit", NULL, WS_CHILD | WS_VISIBLE,
           10,10,100,40, hwnd, (HMENU)100, hThisInstance, NULL);

           CreateWindow("button", "Wykurwiaj !", WS_CHILD | WS_VISIBLE, 100,100,100,40,
            hwnd, (HMENU)100, hThisInstance, NULL);


   /* Make the window visible on the screen */
   ShowWindow (hwnd, nFunsterStil);

   /* 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_COMMAND:
               if(wParam == 100) 
               {         
                         char buf[100];
                         GetDlgItemText(hwnd,wParam,buf,99);
                         int buf_1 = atoi(buf);                          // skomplikowane algorytmy :P
                         buf_1 = buf_1 * 3;
                         itoa(buf_1,buf,10);
                         MessageBox(0,buf,"test",0);  // 100 = handle buttona
                         }
               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;
}

liczylem na barce lecz ona niemogla wygrac.

Przez kibicow ktorzy przy rzutach roznych wolnych swiecili w messiego laserami

Opublikowano

Wiem, jak byłem poczatkujacy to też masakra :)

 

Ale z czasem, wszystko staje się jasne, ważne by się nie zniechęcac

liczylem na barce lecz ona niemogla wygrac.

Przez kibicow ktorzy przy rzutach roznych wolnych swiecili w messiego laserami

Opublikowano

@UP A jaką książke czytałeś jako pierwszą, z której dużo wyniosłeś i ogólnie ci się przydała (Podstawy itd.)

Y U NO LEIK MEH?!

TROLOLOLOLLOLOLOLOLOLOL!

Daj +

Opublikowano

@UP Nie, nie było śmieszne.

 

 

@EDIT mam pytanko. Czym łączyć dwa warunki w if?

 

Chodzi mi o taki np. przykład...:

 

// reszta kodu

if (wiek > 50 & wiek < 80)
{
      instrukcje
}

No wlasnie. Chcialbym zeby 'działało' dla większych niż 50, ale dla mniejszych niż 80. Więc czym to łączyć? "&" nie działa. :rolleyes:

Y U NO LEIK MEH?!

TROLOLOLOLLOLOLOLOLOLOL!

Daj +

Opublikowano

@UP Nie, nie było śmieszne.

 

 

@EDIT mam pytanko. Czym łączyć dwa warunki w if?

 

Chodzi mi o taki np. przykład...:

 

// reszta kodu

if (wiek > 50 & wiek < 80)
{
      instrukcje
}

No wlasnie. Chcialbym zeby 'działało' dla większych niż 50, ale dla mniejszych niż 80. Więc czym to łączyć? "&" nie działa. :rolleyes:

 

Nie & tylko &&. Powinno działać tak mi się zdaje. Jak nie to poczytaj o różnego rodzaju operatorach lub użyj dwóch if'ów.

GrottyCracker22.png
Opublikowano

@UP i @2up dzięki, + dla was.

 

To teraz mam kilka pytan innych :)

 

1. Na jakiej zasadzie działa cin.ignore i cin.clear ( czy jakos tak?), co robi itd. ;)

 

2. Jak zrobić (najprościej jak się da) żeby cout 1 pojawił się od razu po włączeniu programu, a drugi cout pojawil sie 10s pozniej? Jaka komenda za to odpowiada? :P

Y U NO LEIK MEH?!

TROLOLOLOLLOLOLOLOLOLOL!

Daj +

Opublikowano

Jeśli chodzi o tą twoją druga prośbę to proszę :)

#include <iostream>
#include <windows.h>
#include <conio.h>

using namespace std;

int main()
{
  cout << "                        .:::Witaj w Matrixie:::." << endl << endl;
  Sleep(2500);
  cout << "                        Ktora wybierasz piguke ?" << endl << endl;
  Sleep(1000);
  cout << "                        Niebieska czy Czerwona ?";
  getch();
}

Skompiluj i zobacz. Aby takie coś zrobić musisz użyć biblioteki windows.h i funkcji sleep. Czas podajesz w milisekundach 1s = 1000ms

Biblioteka conio.h potrzebna jest do funkcji getch(); która tylko przytrzymuje tekst w tym przykładzie.

Liczę na +

GrottyCracker22.png
Opublikowano

@UP Wielkie dzięki. Oczywiście + leci dla Ciebie.

 

To teraz jeszcze jedno pytanie :P

Jak ustawić coś jakby podobne do hotkeya

Może wyjaśnie. :D Po naciśnięciu klawisza "z" pojawi się cout "Blabla"

 

Wiem że można w taki sposób:

 

#include <iostream>
#include <conio.h>
#include "string.h"

using namespace std;

int main()
{
  string str1;
  cout << "Prosze o wpisanie klawisza u: ";
  cin >> str1;

  if (str1 == "u")
  cout << "Dziekujemy!" << endl << endl;
  getch();
  return 0;



}

 

No ale jednak nie chodzi mi o coś takiego. Coś bardziej podchodzącego pod switch case1 case2 itd. ;>

 

np. pisałoby naciśnij:

 

z aby zrobić coś tam

a aby zrobić coś tam2

Ciężko wytlumaczyc o co mi chodzi :mellow:

Y U NO LEIK MEH?!

TROLOLOLOLLOLOLOLOLOLOL!

Daj +

Opublikowano

Liczę na +

 

#include <iostream>
#include <conio.h>
#include <string>

using namespace std;

int main()
{
   string wybieranie_z_menu;
   cout << "Menu" << endl << endl;
   cout << "[Z] Daj mi +" << endl;
   cout << "[X] Daj mi 2x +" << endl;
   cout << "[C] Daj mi 3x +" << endl;
   cin >> wybieranie_z_menu;
   if(wybieranie_z_menu == "z")
   cout << "Dzieki";
   if(wybieranie_z_menu == "x")
   cout << "Dzieki! Super!";
   if(wybieranie_z_menu == "c")
   cout << "OMG!!! Thanks!!!";
   getch();
}

To jest prosty sposób ale nie ma tutaj switch....case.

GrottyCracker22.png
Opublikowano

@UP Thanks! + leci. Kolejna prośba. :P Wiem, że się da pisać polskie znaki za pomocą cyfr (już to pozapominałem, ale było coś takiego np. 164 = ą czy jakoś tak ;O) no ale to trochę uciążliwe. Mógłby ktoś zapodać jakiś header file dzięki któremu mogę normalnie wpisywać w cout ą, ć, ż , ź, ó, ś? Bo po kompilacji wyskakują mi jakieś dziwne litery np.: Đç itd. Da się zrobić taki .h i może ktoś mi taki zapodać? Dam + ;P

Y U NO LEIK MEH?!

TROLOLOLOLLOLOLOLOLOLOL!

Daj +

Opublikowano

@UP Thanks! + leci. Kolejna prośba. :P Wiem, że się da pisać polskie znaki za pomocą cyfr (już to pozapominałem, ale było coś takiego np. 164 = ą czy jakoś tak ;O) no ale to trochę uciążliwe. Mógłby ktoś zapodać jakiś header file dzięki któremu mogę normalnie wpisywać w cout ą, ć, ż , ź, ó, ś? Bo po kompilacji wyskakują mi jakieś dziwne litery np.: Đç itd. Da się zrobić taki .h i może ktoś mi taki zapodać? Dam + ;P

Użyj biblioteki locale.

http://forum.dobreprogramy.pl/kompilacja-polskie-znaki-konsoli-t304295-15.html#p2125883

GrottyCracker22.png
Opublikowano
A jaką książke czytałeś jako pierwszą, z której dużo wyniosłeś i ogólnie ci się przydała (Podstawy itd.)

 

Zdecydowanie Nowe szaty króla. Ale dużo wiedzy wyniosłem również z Czerwonego Kapturka i Brzydkiego Kaczątka.

 

Na jakiej zasadzie działa cin.ignore i cin.clear ( czy jakos tak?), co robi itd.

 

ignore

http://www.cplusplus.com/reference/iostream/istream/ignore/

clear

http://www.cplusplus.com/reference/iostream/ios/clear/

 

Jak ustawić coś jakby podobne do hotkeya

 

istream::get, getchar, kbhit (conio.h)

 

Globalnie (w Windows'ie):

HotKeySet

Ta sygnatura jest pusta.

Opublikowano

Mam pytanko, dałoby się hmm wyczyścić całą konsolę? W sensie.. pojawia się napis, kolejny napis itd. i po 10s cała konsola się czyści...?

 

Da się tak?

 


cout << "Tekst\nTekst\nTekst\nTekst\n";
Sleep(10000);
polecenie_odpowiadające_za_czyszczenie_konsoli;
cout << "Blabla";

 

Jest w ogóle taka 'komenda' ?

Y U NO LEIK MEH?!

TROLOLOLOLLOLOLOLOLOLOL!

Daj +

Opublikowano

Zrób tak jak ci podałem w pojawieniem się tekstu co ileś sekund i na końcu daj to co podał up czyli.

system("cls");

Jak ci nie będzie działać to dodaj też bibliotekę windows.h

 

EDIT:

 

@down

A to sorry już nie pamiętam :)

GrottyCracker22.png
Opublikowano

Jak zmienić kolor tekstu w konsoli na np. zielony, niebieski itd? ;d Wiem, ze sie da bo juz nie raz widzialem. :s

Y U NO LEIK MEH?!

TROLOLOLOLLOLOLOLOLOLOL!

Daj +

Opublikowano

Użyj SetConsoleTextAttribute, możesz nabazgrać sobie funkcję zmieniającą kolor czcionki:

#include <Wincon.h> //windows console, przydatne stałe

HANDLE hKonsola = GetStdHandle(STD_OUTPUT_HANDLE); //najpierw trzeba pobrać uchwyt okna konsoli

void textcolor(short color)
{
    SetConsoleTextAttribute(hKonsola, color); //ustawiamy kolor
}

//gdiześ w kodzie
main()
{
 textcolor(FOREGROUND_BLUE | FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_INTENSITY);
 cout<<"Tekst na bialo"<<endl;
 textcolor(FOREGROUND_RED | FOREGROUND_INTENSITY | BACKGROUND_BLUE);
 cout<<"Czerwony (rozowy?) tekst na niebieskim tle";
}

YOU MUST DIE

- Ganon, Koridai

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...