By | 05/03/2018

Hello Sahabat Anak Kendali.

Pada posting sebelumnya kita sudah membuat aplikasi windows sederhana dengan Bahasa C, maka dari itu saya akan melajutkan tutorialnya

kali ini saya akan memberikan tutorial cara membuat tombol atau biasa dikenal dengan sebutan button untuk aplikasi windows atau biasa kita kenal file yang berformat .exe

pada dasarnya button termasuk child window atau jendela kecil. jadi untuk membuat tombol mirip seperti membuat window dengan memberikan “button” pada nama kelasnya. berikut contoh kodenya

HWND tombol = CreateWindow (
“button”, //nama kelas
“tombol”, //tulisan pada tombol
WS_VISIBLE | WS_CHILD | WS_BORDER, //style
260, 200, //posisi
60, 40, //ukuran
hwnd, //window induk
(HMENU) 1, //id tombol
NULL, NULL);

nah apa itu id tombol? ketika kita menekan tombol yang kita buat, windows akan memanggil message WM_COMMAND dan pada wparam akan muncul id tombol kita dan disana kita dapat memberikan fungsi ketika kita menekan tombol tersebut

Membuat Aplikasi Windows GUI dengan Bahasa C (Part 2 : Tombol)

Example :

misal kita buat tombol dan ketika kita menekannya akan ada pesan bahwa kita menekan tombol

LRESULT CALLBACK WndProc (HWND   hwnd, UINT   msg, 
WPARAM wParam, LPARAM lParam)
{
    switch (msg)
    {
        //ketika window dibuat
        case WM_CREATE :
        {
            HWND tombol1 = CreateWindow (“button”, “tombol 1”, 
            WS_VISIBLE | WS_CHILD | WS_BORDER, 270, 200, 
            100, 40, hwnd, (HMENU) 1, NULL, NULL);
            HWND tombol2 = CreateWindow (“button”, “tombol 2”, 
            WS_VISIBLE | WS_CHILD | WS_BORDER, 270, 240, 
            100, 40, hwnd, (HMENU) 2, NULL, NULL);
            break;
        }
        case WM_COMMAND :
            switch (LOWORD (wParam))
            {
                //id tombol
                case 1 :
                    MessageBox (hwnd, “Anda Menekan tombol 1”, “test.exe”, MB_OK);
                    break;
                case 2 :
                    MessageBox (hwnd, “Anda Menekan tombol 2”, “test.exe”, MB_OK);
                    break;
            }
            break;
        //ketika window di tutup
        case WM_CLOSE :
            DestroyWindow (hwnd) ;
            break ;
        case WM_DESTROY :
            PostQuitMessage (0) ;
            break ;
        default :
            return DefWindowProc (hwnd, msg, wParam, lParam) ;
    }
    return 0 ;
}

Penjelasan : jadi kita membuat tombol pada WM_CREATE dan ketika kita menekan tombol akan ada message WM_COMMAND, jika kita menekan tombol 1 maka wparam = 1 sedangkan jika kita menekan tombol 2 maka wparam = 2 sesuai dengan tombol id nya

berikut kode lengkapnya

#include <windows.h>

LRESULT CALLBACK WndProc (HWND   hwnd, UINT   msg, 
WPARAM wParam, LPARAM lParam)
{
    switch (msg)
    {
        //ketika window dibuat
        case WM_CREATE :
        {
            HWND tombol1 = CreateWindow (“button”, “tombol 1”, 
            WS_VISIBLE | WS_CHILD | WS_BORDER, 270, 200, 
            100, 40, hwnd, (HMENU) 1, NULL, NULL);
            HWND tombol2 = CreateWindow (“button”, “tombol 2”, 
            WS_VISIBLE | WS_CHILD | WS_BORDER, 270, 240, 
            100, 40, hwnd, (HMENU) 2, NULL, NULL);
            break;
        }
        case WM_COMMAND :
            switch (LOWORD (wParam))
            {
                //id tombol
                case 1 :
                    MessageBox (hwnd, “Anda Menekan tombol 1”, “test.exe”, MB_OK);
                    break;
                case 2 :
                    MessageBox (hwnd, “Anda Menekan tombol 2”, “test.exe”, MB_OK);
                    break;
            }
            break;
        //ketika window di tutup
        case WM_CLOSE :
            DestroyWindow (hwnd) ;
            break ;
        case WM_DESTROY :
            PostQuitMessage (0) ;
            break ;
        default :
            return DefWindowProc (hwnd, msg, wParam, lParam) ;
    }
    return 0 ;
}

int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
{
    WNDCLASSEX wc;
    // ukuran dari WNDCLASSEX
    wc.cbSize   = sizeof(WNDCLASSEX);
    // gaya 
    wc.style   = 0;
    // fungsi prosedur
    wc.lpfnWndProc  = WndProc;
    wc.cbClsExtra  = 0;
    wc.cbWndExtra  = 0;
    wc.hInstance  = hInstance;
    // gambar ikon 
    wc.hIcon   = LoadIcon(NULL, IDI_APPLICATION);
    // gambar kursor
    wc.hCursor   = LoadCursor(NULL, IDC_ARROW);
    // warna latar belakang
    wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
    wc.lpszMenuName  = NULL;
    wc.lpszClassName = “namakelas”;
    // gambar ikon versi kecil
    wc.hIconSm   = LoadIcon(NULL, IDI_APPLICATION);

    RegisterClassEx(&wc);
    
    HWND hwnd = CreateWindowEx(
        WS_EX_CLIENTEDGE,
        “namakelas”,     // nama kelas
        “test.exe”,      // judul aplikasi
        WS_OVERLAPPEDWINDOW,   // model window nya
        CW_USEDEFAULT, CW_USEDEFAULT,  // letak window CW_USEDEFAULT untuk default
        640, 480,      // ukuran window
        NULL, NULL, hInstance, NULL);
    
    ShowWindow (hwnd, nCmdShow) ; // agar window terlihat
    UpdateWindow (hwnd) ;   
    
    MSG Msg ;
    while(GetMessage(&Msg, NULL, 0, 0) > 0)
    {
        TranslateMessage(&Msg);
        DispatchMessage(&Msg);
    }
    return Msg.wParam ;
}

Membuat Aplikasi Windows GUI dengan Bahasa C (Part 2 : Tombol)

Mungkin cukup sekian apa yang bisa saya bagikan semoga bermanfaat

keyword :

Bahasa C
Anak kendali Bahasa C
belajar Bahasa C
cara membuat aplikasi Windows dengan Bahasa C
Belajar Aplikasi Windows dengan Bahasa C
Bahasa C
Tutorial Bahasa C
aplikasi windows GUI Bahasa C

One Reply to “Membuat Aplikasi Windows GUI dengan Bahasa C (Part 2 : Tombol)”

Leave a Reply

Your email address will not be published. Required fields are marked *