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
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 ;
}
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
Mantap gan,,
Back http://www.caraebit.com