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

[Pytanie] kalkulator w c++


Rekomendowane odpowiedzi

Opublikowano

Witam! Mam pytanie, zrobiłem okienko do kalkulatora, ale mam problem co zrobić żeby dopisać do przycisku jakieś działanie? Chodzi o to by po wciśnięciu przycisku przeliczyło liczbę wpisaną w pole tekstowe, w określony sposób a następnie wyświetliło wynik w messagebox. Wszystko już mam zrobione oprócz reagowania na wciśnięcie kontrolki.

Oto kod:

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

#define  PRZYCISK1 501
#define  PRZYCISK2 502
#define  PRZYCISK3 503
#define  PRZYCISK4 504
#define  PRZYCISK5 505
#define  PRZYCISK6 506
#define  PRZYCISK7 507
#define  PRZYCISK8 508

long long liczba;

LPSTR NazwaKlasy = "Klasa Okienka";
MSG Komunikat;

LRESULT CALLBACK WndProc( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam );
HWND g_hPrzycisk;
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
{
    
    
    WNDCLASSEX wc;
    
    wc.cbSize = sizeof( WNDCLASSEX );
    wc.style = 0;
    wc.lpfnWndProc = WndProc;
    wc.cbClsExtra = 0;
    wc.cbWndExtra = 0;
    wc.hInstance = hInstance;
    wc.hIcon = LoadIcon( NULL, IDI_APPLICATION );
    wc.hCursor = LoadCursor( NULL, IDC_ARROW );
    wc.hbrBackground =( HBRUSH )( COLOR_WINDOW + 1 );
    wc.lpszMenuName = NULL;
    wc.lpszClassName = NazwaKlasy;
    wc.hIconSm = LoadIcon( NULL, IDI_APPLICATION );
    
    
    if( !RegisterClassEx( & wc ) )  {return 1;}
    
    
    HWND hwnd;
    
    hwnd = CreateWindowEx( WS_EX_CLIENTEDGE, NazwaKlasy, "Program do zamiany liczb", WS_OVERLAPPEDWINDOW,
    CW_USEDEFAULT, CW_USEDEFAULT, 660, 240, NULL, NULL, hInstance, NULL );
HWND hStatic = CreateWindowEx( 0, "STATIC", "Wpisz liczbe do zamiany:", WS_CHILD | WS_VISIBLE |
SS_LEFT, 140, 10, 175, 20, hwnd, (HMENU) liczba, hInstance, NULL );
HWND hText = CreateWindowEx( WS_EX_CLIENTEDGE, "EDIT", NULL, WS_CHILD | WS_VISIBLE | WS_BORDER,
320, 10, 165, 20, hwnd, NULL, hInstance, NULL );	
g_hPrzycisk = CreateWindowEx( 0, "BUTTON", "System dziesietny na binarny", WS_CHILD | WS_VISIBLE,
20, 40, 300, 30, hwnd, (HMENU) PRZYCISK1,  hInstance, NULL );
g_hPrzycisk = CreateWindowEx( 0, "BUTTON", "System dziesietny na trojkowy", WS_CHILD | WS_VISIBLE,
20, 80, 300, 30, hwnd, (HMENU) PRZYCISK2, hInstance, NULL );
g_hPrzycisk = CreateWindowEx( 0, "BUTTON", "System dziesietny na czworkowy", WS_CHILD | WS_VISIBLE,
20, 120, 300, 30, hwnd, (HMENU) PRZYCISK3, hInstance, NULL );
g_hPrzycisk = CreateWindowEx( 0, "BUTTON", "System dziesietny na piatkowy", WS_CHILD | WS_VISIBLE,
20, 160, 300, 30, hwnd,(HMENU) PRZYCISK4, hInstance, NULL );
g_hPrzycisk = CreateWindowEx( 0, "BUTTON", "System binarny na dziesietny", WS_CHILD | WS_VISIBLE,
340, 40, 300, 30, hwnd, (HMENU)PRZYCISK5, hInstance, NULL );
g_hPrzycisk = CreateWindowEx( 0, "BUTTON", "System trojkowy na dziesietny", WS_CHILD | WS_VISIBLE,
340, 80, 300, 30, hwnd, (HMENU)PRZYCISK6, hInstance, NULL );
g_hPrzycisk = CreateWindowEx( 0, "BUTTON", "System czworkowy na dziesietny", WS_CHILD | WS_VISIBLE,
340, 120, 300, 30, hwnd, (HMENU)PRZYCISK7, hInstance, NULL );
g_hPrzycisk = CreateWindowEx( 0, "BUTTON", "System piatkowy na dziesietny", WS_CHILD | WS_VISIBLE,
340, 160, 300, 30, hwnd, (HMENU)PRZYCISK8, hInstance, NULL );
    
  
    
    ShowWindow( hwnd, nCmdShow ); 
    UpdateWindow( hwnd );
    


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


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

Mam pytanie co tu przerobić? Bo nie mogę nigdzie znaleźć (W WinApi dopiero zaczynam)

Opublikowano

Poszukaj informacji na temat pobierania danych z kontrolki / aktualnego stanu kontrolki.

Dalej już instrukcje warunkowe, np case cośtam: jaką akcję chcesz wykonać.

userbar.png

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...