Professional Documents
Culture Documents
com
AppWizard akan menuju ke langkah berkutnya yaitu Step-1 dan seterusnya, setiap
langkah terdapat pilihan yang harus dipilih guna menentukan bentuk aplikasi yang akan
dibuat dan pendukungnya, seperti berbasis MDI, SDI atau Dialog.
1
This watermark does not appear in the registered version - http://www.clicktoconvert.com
2
This watermark does not appear in the registered version - http://www.clicktoconvert.com
3
This watermark does not appear in the registered version - http://www.clicktoconvert.com
untuk melihat ringkasan dari file dan kelas yang akan dibuat, serupa pada Gambar 1.5
dibawah ini.
4
This watermark does not appear in the registered version - http://www.clicktoconvert.com
Bila informasi diatas ada yang tidak disetujui maka klik Cancel untuk kembali
kelangkah sebelumnya, betulkan dan kembali ke langkah ini. Klik OK setelah disetujui,
maka aplikasi akan dibuat, yaitu tersedianya dialog kosong. Untuk mencoba dialog ini
maka klik Build kemudian Run, maka akan ditampilkan seperti pa d a Gambar 1.7
dibawah ini.
5
This watermark does not appear in the registered version - http://www.clicktoconvert.com
Icon Picture
Digunakan untuk meletakkan obyek gambar ke dialog, sehingga pengguna dapat
menampilkan gambar didalam dialog.
Icon Button
Obyek tombol ini sering digunakan karena aksi yang dilakukan didalam dialog
biasanya dilakukan dengan penekanan suatu tombol, yaitu untuk menjalankan aksi yang
diinginkan
6
This watermark does not appear in the registered version - http://www.clicktoconvert.com
Icon Progress
Pada suatu proses program perulangan yang sedang berjalan lama, maka tidak
dapat diketahui sejauh mana program looping tersebut dikerjakan. Dengan penggunaan
obyek Progress maka dapat diperkirakan selesainya proses perulangan tersebut, karena
proses yang telah dikerjakan akan ditampilkan pada obyek Progress.
Icon Slider
Digunakan bila masukan adalah berupa perkiraan angka yang dilakukan dengan
penekanan tombol mouse, sehingga pengguna lebih mudah memasukkan perkiraan angka
yang diinginkan. Seperti setting perpaduan warna RGB.
Icon IP address
Untuk menampilkan data Alamat IP dengan format titik.
7
This watermark does not appear in the registered version - http://www.clicktoconvert.com
8
This watermark does not appear in the registered version - http://www.clicktoconvert.com
9
This watermark does not appear in the registered version - http://www.clicktoconvert.com
Setiap kotak edit mempunyai Identitas yaitu sebagai nama obyek yang bersangkutan,
adapun identitas tersebut biasanya disingkat dengan IDC_EDITn. Nama identitas ini
biasanya diset dengan huruf besar, bila akan diganti maka gunakan huruf besar, ingat
bahwa huruf besar dan kecil akan berbeda (case sensitive). Untuk permasalahan disini
sebaiknya tidak usah diganti, dimana ada dua kotak edit dengan Identitas berturut-turut
IDC_EDIT1 dan IDC_EDIT2. Untuk melihat tampilan dialog sesungguhnya (preview)
dapat ditekan [Ctrl] + [T].
10
This watermark does not appear in the registered version - http://www.clicktoconvert.com
Setelah tombol tekan ditambahkan kemudian klik pada tombol tersebut dua kali, maka
akan pindah pada tampilan dialog penambahan fungsi anggota baru seperti pada Gambar
2.7 dibawah. Gantilah OnButton1 dengan OnProses, kemudian klik OK.
11
This watermark does not appear in the registered version - http://www.clicktoconvert.com
12
This watermark does not appear in the registered version - http://www.clicktoconvert.com
Dari sini pembuatan program dapat dimulai, yaitu dibawah komentar //TODO, seperti
pada Gambar 2.9 diatas. Tambahkan baris program berikut:
pembilang=GetDlgItemInt(IDC_EDIT1);
penyebut=GetDlgItemInt(IDC_EDIT2);
hasil=pembilang/penyebut;
sprintf(chasil,"Hasil pembagian = %d",hasil);
MessageBox(chasil,"Kotak Pesan");
Program mendeklarasikan tiga variable yaitu pembilang, penyebut dan hasil dengan
tipe integer (bulat) semuanya, dan juga satu variable string chasil dengan lebar 50
karakter yang digunakan untuk menampung hasil proses, yang telah diformat dalam
b e n t u k string, sehingga dapat ditampilkan pada kotak pesan dengan fungsi
MessageBox().
Fungsi sprintf() akan mencetak tampilan yang telah diformat kedalam
variable string chasil, sehingga dapat ditampilkan pada kotak pesan dengan fungsi
MessageBox(), untuk dapat menggunakan fungsi sprintf(), maka perlu ditambahkan
file header “stdio.h” pada awal program utama yang menggunakan fungsi tersebut.
Jalankan program dan isikan suatu data misal 50 untuk pembilan dan 5 untuk
penyebut, maka akan ditampilkan seperti pada Gambar 2.10 dibawah.
13
This watermark does not appear in the registered version - http://www.clicktoconvert.com
1. Tekan [Ctrl] + [W] untuk membuka dialog MFC ClassWizard seperti pada
Gambar 2.11 dibawah.
2. Pilih tab Member Variables, pada kotak edit IDs pilih IDC_EDIT1, klik
tombol Add Variable disebelah kanan atas, maka akan ditampilkan seperti
pada Gambar 2.12 dibawah.
3. Masukkan nama variable yang akan digunakan untuk menyimpan data
masukan dari kotak edit (misalkan m_penyebut), secara default variable ini
didepannya diberi symbol m_ yang berarti bahwa variable ini merupakan
variable (memori) dari masukan obyek control.
4. Pada isian Category terdapat dua pilihan yaitu Value dan Control, Pilih Value
bila variable bersifat biasa dan Control untuk keperluan pengendalian tertentu
seperti menampilkan karakter secara multiline (akan dibahas kemudian).
14
This watermark does not appear in the registered version - http://www.clicktoconvert.com
5. Pilih tipe variable yang diinginkan pada pilihan Variable type, misalkan pilih
tipe variable float. Kemudian klik OK.
6. Ulangi langkah-langkah tersebut untuk IDC_EDIT2, sehingga didapatkan
daftar ID seperti pada Gambar 2.13 dibawah. Klik OK untuk menutup dialog
MFC ClassWizard.
15
This watermark does not appear in the registered version - http://www.clicktoconvert.com
Lihat perubahan tersebut pada program, yaitu klik ClassView, klik pada
DoDataExchange(CDataExchange *pDX), maka akan terlihat pada editor sebagai
berikut:
16
This watermark does not appear in the registered version - http://www.clicktoconvert.com
(a) (b)
Gambar 2.14a Tapilan Jendela ClassView, 2.14b Tampilan Jendela FileView
Sedangkan nilai awal dari kedua variable tersebut dapat dilihat pada ClassView dimana
terletak pada fungsi CDialogkuDlg(CWnd *pParent=NULL), seperti dibawah ini:
Untuk mencoba kebenaran dari seting diatas maka modifikasi program sebelumnya (ganti
semua), yaitu pada fungsi ::OnProses() dengan program dibawah ini:
17
This watermark does not appear in the registered version - http://www.clicktoconvert.com
float fhasil;
char chasil[50];
UpdateData(TRUE);
fhasil=m_pembilang/m_penyebut;
Pada subbab diatas telah dibahas bagaimana mendapatkan data dan menampilkan
data, akan tetapi hasil proses masih ditampilkan pada kotak pesan (terpisah dari dialog
utama). Berikut ini akan diberikan cara untuk menampilkan hasil proses dalam dialog
yang sama, yaitu dengan memanfaatkan kotak edit sebagai tampilan hasil proses. Kotak
edit dapat digunakan untuk menampilkan hasil proses secara satu baris atau beberapa
baris, untuk beberapa baris maka harus dilakukan trik khusus yang akan dibahas setelah
pembahasan menampilkan hasil proses dalam satu baris.
Adapun langkah yang dilakukan untuk menampilkan hasil proses dalam satu baris
adalah cukup mudah yaitu klik icon “Edit box” kemudian letakkan pada tempat yang
diinginkan dan berikan label seperti pada Gambar 2.16 dibawah. Untuk menuju Dialog
Editor yaitu dengan cara klik tab ResourceView disebelah kanan ClassView, klik tanda
“+” pada dialogku resources, klik tanda “+” pada Dialog dan klik pada
IDD_DIALOGKU_...
18
This watermark does not appear in the registered version - http://www.clicktoconvert.com
Untuk menampilkan hasil proses dapat dilakukan juga dengan dua cara seperti
halnya mendapatkan data dari kotak edit, yaitu dengan SetDlgItemText() atau
SetDlgItemInt() atau dengan fungsi SetWindowText().
Gambar 2.16 Kotak Edit untuk Menampilkan Hasil Proses dalam Satu Baris
void CDialogkuDlg::OnProses()
{
// TODO: Add your control notification handler code here
float fhasil;
char chasil[50];
UpdateData(TRUE);
fhasil=m_pembilang/m_penyebut;
19
This watermark does not appear in the registered version - http://www.clicktoconvert.com
Untuk menampilkan hasil proses secara multiline maka dapat dilakukan dengan setting
pada properties dari kotak edit tersebut yaitu dengan langkah sebagai berikut:
1. Klik kanan pada kotak edit yang bersangkutan, klik properties
2. Klik tab Styles, klik Multiline, klik Auto VScroll (lihat Gambar 2.18)
3. Klik tanda x pada sudut kanan atas untuk selesai,
4. Lebarkan kotak edit tampilan proses hasil seperti pada Gambar 2.19 dibawah.
Gambar 2.18 Setting kotak edit tampilan proses hasil untuk Multiline
20
This watermark does not appear in the registered version - http://www.clicktoconvert.com
void CDialogkuDlg::OnProses()
{
// TODO: Add your control notification handler code here
float fhasil;
char chasil[50];
int i;
CString sbuffer="";
UpdateData(TRUE);
fhasil=m_pembilang/m_penyebut;
Program akan mencetak 10 kali hasil proses pada variable chasil, yaitu dengan cara
perulangan for(), sedangkan untuk menampilkan 10 tampilan tersebut harus dilakukan
dalam variable memori (sbuffer) yang ditandai dengan “\r\n” untuk ganti baris baru.
Setelah tampilan berada dalam variable sbuffer, maka dapat ditampilkan sekaligus ke
kotak edit dengan fungsi SetDlgItemText().
21
This watermark does not appear in the registered version - http://www.clicktoconvert.com
Untuk menampilkan hasil proses tersebut pada Gambar 2.20 diatas, dapat pula dilakukan
dengan fungsi SetWindowText(), yaitu modifikasi program diatas menjadi seperti
dibawah ini:
void CDialogkuDlg::OnProses()
{
// TODO: Add your control notification handler code here
float fhasil;
char chasil[50];
int i;
CString sbuffer="";
UpdateData(TRUE);
fhasil=m_pembilang/m_penyebut;
Kemudian masuk ke dialog ClassWizard klik tab Member Variables, deklarasikan suatu
variable [Add Variable…] pada kotak edit yang bersangkutan (IDC_EDIT3) dengan
nama m_tampilan dan pilihan Category adalah Control sehingga mempunyai tipe
varaibel CEdit seperti pada Gambar 2.21 dibawah:
22
This watermark does not appear in the registered version - http://www.clicktoconvert.com
Jalankan program dan akan didapatkan hasil sama seperti pada Gambar 2.20 diatas.
23
This watermark does not appear in the registered version - http://www.clicktoconvert.com
24
This watermark does not appear in the registered version - http://www.clicktoconvert.com
25
This watermark does not appear in the registered version - http://www.clicktoconvert.com
void CRadioDlg::OnElektronika()
{
// TODO: Add your control notification handler code here
UpdateData();
m_pilihan.Format("%s","Teknik Elektronika");
UpdateData(FALSE);
}
void CRadioDlg::OnTelekomunikasi()
{
// TODO: Add your control notification handler code here
UpdateData();
m_pilihan.Format("%s","Teknik Telkomunikasi");
UpdateData(FALSE);
void CRadioDlg::OnListrik()
{
// TODO: Add your control notification handler code here
UpdateData();
m_pilihan.Format("%s”,"Teknik Listrik");
UpdateData(FALSE);
void CRadioDlg::OnInformatika()
{
// TODO: Add your control notification handler code here
UpdateData();
m_pilihan.Format("%s","Teknik Informatika");
UpdateData(FALSE);
10. Untuk menampilkan hasil pilihan tombol radio, maka tambahkan variable
m_pilihan pada kotak edit, dengan Category value dan tipe CString, lihat pada
Gambar 2.24 diatas.
11. Penting dilakukan disini yaitu klik kembali semua tombol radio dengan
bersamaan menekan tombol [Ctrl], hapus cawang pada kotak check Group.
12. Jalankan Program.
26
This watermark does not appear in the registered version - http://www.clicktoconvert.com
1. Klik dua kali pada tombol “Pilih”, berikan nama OnPilih pada kotad edit.
2. Modifikasi program menjadi seperti dibawah ini:
void CRadioDlg::OnElektronika()
{
m_pilihan="Teknik Elektronika";
}
void CRadioDlg::OnTelekomunikasi()
{
m_pilihan="Teknik Telkomunikasi";
}
void CRadioDlg::OnListrik()
{
m_pilihan="Teknik Listrik";
}
void CRadioDlg::OnInformatika()
{
m_pilihan="Teknik Informatika";
}
void CRadioDlg::OnPilih()
{
SetDlgItemText(IDC_EDIT1,m_pilihan);
}
27
This watermark does not appear in the registered version - http://www.clicktoconvert.com
2. Buatlah program untuk menampilkan soal pilihan ganda menggunakan tombol radio,
seperti pada tampilan dibawah ini.
28
This watermark does not appear in the registered version - http://www.clicktoconvert.com
29
This watermark does not appear in the registered version - http://www.clicktoconvert.com
Untuk menampilkan semua IDC RADIO, jangan lupa klik semua tombol radio sambil
menekan tombol [Ctrl], kemudian cawang pilihan Group, setelah Anggota Variabel
diset hapus cawang pada Group.
ü Klik pada ClassView, klik pada tanda + Pilihan Classes, klik 2x pada
CPilihanDlg, maka akan ditampilkan Klas dari CPilihanDlg, tambahkan deklarasi
program dibawah ini yaitu setelah baris program DECLARE_MESSAGE_MAP()
30
This watermark does not appear in the registered version - http://www.clicktoconvert.com
private:
int JumlahPertayaan;
ü Klik tanda + pada folder CPilihanDlg, klik 2x pada CInitDialog, dan tambahkan
baris dibawah ini setelah //TODO
JumlahPertayaan = 3;
OnBerikutnya();
ü Masih pada ClassView, klik kanan pada folder CPilihanDlg, pilih Add Member
Function dan isikan seperti Gambar dibawah ini
ü Ketik program dibawah ini didalam fungsi yang baru saja dibuat:
int Jawaban;
switch(q) {
case 0:
m_Pertanyaan.Format("Manakah bahasa tingkat menengah?");
m_Jawab1.SetWindowText("Pascal");
m_Jawab2.SetWindowText("C");
m_Jawab3.SetWindowText("Fortran");
m_Jawab4.SetWindowText("Basic");
Jawaban = 2;
break;
case 1:
m_Pertanyaan.Format("Visual C++ dibuat oleh siapa?");
m_Jawab1.SetWindowText("Borland");
m_Jawab2.SetWindowText("Seagate");
m_Jawab3.SetWindowText("Microsoft");
m_Jawab4.SetWindowText("Infogamer");
Jawaban = 3;
break;
31
This watermark does not appear in the registered version - http://www.clicktoconvert.com
case 2:
m_Pertanyaan.Format("Visual C++ termasuk permrograman");
m_Jawab1.SetWindowText("Linear");
m_Jawab2.SetWindowText("Graphics");
m_Jawab3.SetWindowText("Database");
m_Jawab4.SetWindowText("Non Linear");
Jawaban = 4;
break;
}
return Jawaban;
ü Klik dua kali pada tombol Berikutnya, isikan nama OnBerikutnya untuk membuat
fungsi baru OnBerikutnya(), dan tambahkan baris-baris program dibawah ini:
UpdateData(TRUE);
if(q<JumlahPertanyaan)
TanyaJawab(q);
q++;
UpdateData(FALSE);
32
This watermark does not appear in the registered version - http://www.clicktoconvert.com
33
This watermark does not appear in the registered version - http://www.clicktoconvert.com
UpdateData();
if(m_hobby1) cHobby1="Membaca"; else cHobby1="";
if(m_hobby2) cHobby2="Olah raga"; else cHobby2="";
if(m_hobby3) cHobby3="Komputer"; else cHobby3="";
if(m_hobby4) cHobby4="Elektronika"; else cHobby4="";
if(m_hobby5) cHobby5="Jalan-jalan"; else cHobby5="";
cTampilan=m_nama+"\r\n"+m_alamat+"\r\n"+m_jurusan+ “\r\n”;
cTampilan+=cHobby1+”\r\n”+cHobby2+”\r\n”+cHobby3+
“\r\n”+cHobby4+”\r\n”+cHobby5;
m_tampilan.Format(cTampilan);
UpdateData(FALSE);
ü Jalankan program, isikan data, pilih hobby dan tekan tombol “Tampil”.
2. Buatlah aplikasi dialog dengan nama “Konversi”, dimana dialog ini menangani
konversi suatu dasar/ basis bilangan, yaitu Biner, Oktal, Desimal dan Hexa.
Bilangan yang dimasukkan dapat dipilih salah satu dari keempat dasar bilangan
tersebut, untuk lebih jelasnya perhatikan pada layout dialog dibawah ini:
34
This watermark does not appear in the registered version - http://www.clicktoconvert.com
3. Modifikasilah aplikasi dialog pada latihan no.2 menjadi konversi temperature dan
mata uang, dengan nama dialog “Konversi2” dan “Konversi3”.
35
This watermark does not appear in the registered version - http://www.clicktoconvert.com
Untuk mengisi pilihan dalam Kotak Combo maka pilih tab Data dan isikan
Pilihan Jurusan seperti Gambar 3.2 dibawah ini, untuk berpindah baris maka harus
digunakan [Ctrl] + [Enter], karena bila tombol Enter saja maka Properties akan ditutup.
36
This watermark does not appear in the registered version - http://www.clicktoconvert.com
Pilihlah pada kotak List Type yaitu Simple, hilangkan cawang pada Kotak Cawang Sort,
kemudian cawang pada Kotak Cawang pada Disable no scroll. Kemudian atur Kotak
Combo seperti pada Gambar 3.1 diatas. Untuk meneriksa apakah tampilan sudah benar
maka tekan [Ctrl] + [T].
Secara tampilan antara tampilan Dropdown dan Drop List adalah sama, tetapi secara
fungsi berbeda yaitu bahwa Dropdown dapat diisi masukan pilihan baru sedangkan Drop
List tidak dapat diisikan pilihan baru. Gunakan pilihan Dropdown bila pengguna dapat
memasukkan pilihan diluar pilihan yang tersedia.
37
This watermark does not appear in the registered version - http://www.clicktoconvert.com
38
This watermark does not appear in the registered version - http://www.clicktoconvert.com
39
This watermark does not appear in the registered version - http://www.clicktoconvert.com
40
This watermark does not appear in the registered version - http://www.clicktoconvert.com
Tambahkan baris program dibawah ini didalam fungsi OnInitDialog() dibawah baris
//TODO sebagai berikut:
m_daftarkota.AddString("Surabaya");
m_daftarkota.AddString("Gresik");
m_daftarkota.AddString("Lamongan");
m_daftarkota.AddString("Malang");
m_daftarkota.AddString("Sidoarjo");
m_daftarkota.AddString("Probolinggo”);
m_daftarkota.AddString("Situbondo");
m_daftarkota.AddString("Banyuwangi");
m_daftarkota.AddString("Magetan");
m_daftarkota.AddString("Madiun");
m_daftarkota.AddString("Jombang");
m_daftarkota.AddString("Blitar");
Gambar 3.14 Hasil dialog DropDown dengan pilihan default kota Magetan
Panggil dialog ClassWizard dengan [Ctrl] + [W], pilih pada kotak Obyek IDs yaitu
IDC_DAFTARKOTA, kemudian pilih pada kotak Messages CBN_SELCHANGE, klik pada
tombol Add Function, maka akan muncul pesan nama fungsi yang akan dibuat yaitu
OnSelchangeDaftarkota, klik OK, maka akan dibuat fungsi yang baru yaitu dengan
nama ::OnSelchangeDaftarkota(), kemudian tambahkan program dibawah ini
dibawa //TODO sebagai berikut:
m_daftarkota.GetLBText(m_daftarkota.GetCurSel(), m_kotapilihan);
UpdateData(FALSE);
41
This watermark does not appear in the registered version - http://www.clicktoconvert.com
Jalankan program maka akan ditampilkan pilihan kota pada kotak edit Kota Pilihan
setelah memilih kota pada kota Combo Daftar Kota.
Gambar 3.16 Tampilan pada saat memilih Kota pada kotak Combo Daftar Kota
42
This watermark does not appear in the registered version - http://www.clicktoconvert.com
void CKotaPilihanDlg::OnDblclkDaftarkota()
{
// TODO: Add your control notification handler code here
m_daftarkota.GetLBText(m_daftarkota.GetCurSel(), m_kotapilihan);
m_jmlkota.Format("%d",m_daftarkota.GetCount());
UpdateData(FALSE);
}
void CKotaPilihanDlg::OnPanah1()
{
// TODO: Add your control notification handler code here
HWND hWnd;
//GetDlgItemText(IDC_KOTAPILIHAN,m_kota1);
GetDlgItem(IDC_PANAH1, &hWnd);
::EnableWindow(hWnd, FALSE); //non aktif tombol Panah 1
m_daftarkota.DeleteString(m_daftarkota.GetCurSel());
m_kota1.Format(m_kotapilihan);
m_kotapilihan=""; // menghapus kota pilihan
UpdateData(FALSE);
}
43
This watermark does not appear in the registered version - http://www.clicktoconvert.com
void CKotaPilihanDlg::OnRollback()
{
// TODO: Add your control notification handler code here
HWND hWnd;
GetDlgItem(IDC_PANAH1, &hWnd);
::EnableWindow(hWnd, TRUE); // aktifkan tombol Panah 1
if(m_kota1!="") {
m_daftarkota.InsertString(m_daftarkota.GetCurSel(),m_kota1);
m_kota1="";
}
UpdateData(FALSE);
}
Berikut ini adalah daftar nama dan tipe variabel yang digunakan.
2. Buatlah aplikasi dialog dengan nama “Laporan”, dimana terdapat dua Kotak
Combo seperti pada layout dibawah. Kotak Combo sebelah kiri berisi semua
atribut “Daftar Atribut” dari suatu record tabel, sedangkan Kotak Combo
sebelah kanan tidak berisi apa-apa (kosong). Diantara kedua Kotak Combo
tersebut terdapat dua tombol dengan caption “>” dan “<” yang digunakan untuk
mentransfer nama atribut dari kedua Kotak Combo tersebut.
44
This watermark does not appear in the registered version - http://www.clicktoconvert.com
3. Modifikasilah aplikasi dialog pada latihan no.2 menjadi layout seperti dibawah ini
dan berilah nama “Laporan2”.
45
This watermark does not appear in the registered version - http://www.clicktoconvert.com
secara manual dari properties. Daftar item pada Kotak List telah diberikan secara default
yaitu Item, Listbox, Sample, dan tabtabtab.
Kotak List dapat dibuat dengan memilih icon dari Toolbox Controls. Setting
dari properties Kotal List memungkinkan pengguna untuk menseting bermacam tampilan
dan kegunaan. Gambar- gambar dibawah ini diberikan tiga properties yang dimiliki oleh
Kotak List.
46
This watermark does not appear in the registered version - http://www.clicktoconvert.com
m_daftarkota.AddString("Surabaya");
m_daftarkota.AddString("Gresik");
m_daftarkota.AddString("Lamongan");
m_daftarkota.AddString("Malang");
m_daftarkota.AddString("Sidoarjo");
m_daftarkota.AddString("Probolinggo");
m_daftarkota.AddString("Situbondo");
m_daftarkota.AddString("Banyuwangi");
m_daftarkota.AddString("Magetan");
m_daftarkota.AddString("Madiun");
m_daftarkota.AddString("Jombang");
m_daftarkota.AddString("Blitar");
m_daftarkota.SetCurSel(0);
ü Kembali editor kedialog, tambahkan Kotak Edit disebelah kanan Kotak List, atur
letak dan besarnya sehingga sama dengan Kotak List,
ü Diantara kedua Kotak obyek tersebut berikan tombol tekan dengan camption “>”,
dan “<”,
ü Sehingga akan ditampilkan seperti pada Gambar 3.16 dibawah ini:
void CListBoxDlg::OnPanah1()
{
// TODO: Add your control notification handler code here
Cstring skota;
m_daftarkota.GetText(m_daftarkota.GetCurSel(), skota);
m_daftarkota.DeleteString(m_daftarkota.GetCurSel());
m_daftarkota.SetCurSel(0);
m_pilihankota.InsertString(m_pilihankota.GetCurSel(), skota);
}
47
This watermark does not appear in the registered version - http://www.clicktoconvert.com
ü Lakukan hal yang sama untuk penekanan tombol kebalikannya yaitu tombol “<”,
dimana bila tombol tersebut ditekan maka akan berlaku sebaliknya, untuk lebih
jelasnya perhatikan baris-baris program dibawah ini:
void CListBoxDlg::OnPanah2()
{
// TODO: Add your control notification handler code here
CString skota;
m_pilihankota.SetCurSel(m_daftarkota.GetCurSel());
m_pilihankota.GetText(m_pilihankota.GetCurSel(), skota);
m_pilihankota.DeleteString(m_pilihankota.GetCurSel());
m_pilihankota.SetCurSel(0);
m_daftarkota.InsertString(m_daftarkota.GetCurSel(), skota);
}
48
This watermark does not appear in the registered version - http://www.clicktoconvert.com
Perbaiki kesalahan yang terjadi pada dialog diatas, seperti apabila semua kota telah
dipindah semuanya, dan tetap dilakukan penekanan tombol panah, maka tampilkan
pesan bahwa Kotak List kosong! Tambahkan fungsi baru untuk penekanan tombol
pamah ganda “>>” dan “<<”, dimana penekanan tombol ini akan memindahkan
semua kota dari kiri ke kanan dan sebaliknya. Tambahkan juga jumlah item yang
terdaftar atau jumlah kota pada masing- masing Kotak List.
2. Buatlah aplikasi dialog dengan nama “Pooling” yang mempunyai layout seperti
dibawah ini. Tampilkan hasil pilihan responden pada Kotak Edit secara multiline.
49
This watermark does not appear in the registered version - http://www.clicktoconvert.com
Untuk membuat tombol kontrol spin, maka pilih icon dan tarik ke editor kotak
dialog, atur ukurannya dan lokasi penempatannya, tambahkan kotak edit sehingga
terbentuk seperti Gambar 4.1 diatas.
Berikut ini langkah-langkah untuk membuat aplikasi tombol kontrol spin.
50
This watermark does not appear in the registered version - http://www.clicktoconvert.com
UDACCEL AccellValue;
AccellValue.nSec = 1000;
AccellValue.nInc = 5;
m_spin.SetRange(-100, 100);
m_spin.SetAccel(1, &AccellValue);
ü Agar tombol spin dapat digunakan maka harus dibuat fungsi baru yang digunakan
untuk menangani penekanan tombol spin tersebut, yaitu tekan [Ctrl] + [W], pilih
IDC_SPIN pada kotak edit Object IDs, pilih UDN_DELTAPOS pada Messages, klik
Add Function, klik Edit Code, tambahkan kode program dibawah ini:
51
This watermark does not appear in the registered version - http://www.clicktoconvert.com
if((*pNMUpDown).iDelta+(*pNMUpDown).iPos>(*pNMUpDown).iPos) step++;
if((*pNMUpDown).iDelta+(*pNMUpDown).iPos<(*pNMUpDown).iPos) step--;
m_editspin.Format("%d",step);
UpdateData(FALSE);
*pResult = 0;
}
Keterangan program:
NM_UPDOWN adalah struktur yang berisi tiga elemen, tetapi yang dibahas disini
hanya dua saja yaitu iPos dan iDelta, dimana iPos digunakan sebagai penunjuk posisi
terakhir dan iDelta menunjukkan penekanan tombol +/- (Up/ Down) dan keduanya
adalah merupakan variabel pointer.
ü Sebelum program dijalankan, berikan nilai awal dulu pada variable m_editspin
yang deklarasinya terletak pada baris awal-awal program didalam fungsi
CSpinDlg() seperti dibawah ini:
52
This watermark does not appear in the registered version - http://www.clicktoconvert.com
ü Untuk menghubungkan antara kontrol slider dan kotak edit maka harus dilakukan
koneksi antara keduanya. Caranya adalah masuk ke Class Wizard pilih
CSliderDlg pada kotak edit Object IDs, pilih WM_HSCROLL pada kotak edit
Messages, klik Add Function, klik Edit Function.
ü Tambahkan baris-baris program dibawah ini didalam fungsi yang baru dibuat:
// TODO: Add your message handler code here and/or call default
m_editslider.Format("%d",m_slider.GetPos());
UpdateData(false);
53
This watermark does not appear in the registered version - http://www.clicktoconvert.com
Berikut ini adalah langkah- langkah untuk membuat Scroll Bar bekerja:
ü Bukalah aplikasi dialog,
ü Klik pada icon vertical scroll bar dan atur penempatannya, masuk ke properties
ganti nama ID dengan IDC_SCROLLBAR,
ü Klik pada icon kotak edit dan atur penempatannya, masuk ke properties ganti
nama ID dengan IDC_VALUESB, untuk lebih jelasnya perhatikan Gambar 4.5
dibawah.
ü Panggil dialog Class Wizard, tambahkan variabel seperti pada Gambar 4.6
dibawah,
54
This watermark does not appear in the registered version - http://www.clicktoconvert.com
m_scrollbar.SetScrollRange(0, 255);
m_editscroll = "0";
UpdateData(false);
55
This watermark does not appear in the registered version - http://www.clicktoconvert.com
ü Panggil dialog Class Wizard, klik tab Message Map, klik CScrollBarDlg pada
kotak edit Object IDs, klik WM_HSCROLL pada kotak edit Messages, klik pada
Add Function, klik Edit Code,
ü Tambahkan baris-baris program dibawah ini:
int CurPos = m_scrollbar.GetScrollPos();
m_editscroll.Format("%d", CurPos);
UpdateData(false);
switch (nSBCode) {
case SB_LINELEFT: // Scroll left.
CurPos--; break;
m_scrollbar.SetScrollPos(CurPos);
Keterangan:
§ SB_LINELEFT dan SB_LINERIGHT adalah konstanta untuk mendeteksi
penekanan penunjuk mouse pada tombol panah kiri atau kanan pada scroll bar.
§ SB_PAGELEFT dan SB_PAGERIGHT adalah konstanta untuk mendeteksi
penekanan penunjuk mouse pada kotak kosong pada scroll bar.
§ SB_THUMBPOSITION adalah konstanta untuk mendeteksi pergeseran posisi kotak
geser secara langsung (tanpa menunjukkan angka pergeserannya).
§ SB_THUMBTRACK adalah konstanta untuk mendeteksi pergeseran posisi kotak
geser dengan menunjukkan angka pergeserannya.
ü Jalankan program dan klik pada panah kiri atau kanan, klik pada kotak scroll bar,
dan klik pada kotak geser kemudian tarik dan letakkan pada posisi yang
diinginkan.
56
This watermark does not appear in the registered version - http://www.clicktoconvert.com
1. Buatlah program aplikasi dialog dengan nama “Kombinasi”, yang menirukan cara
kerja dari kunci kombinasi dengan 4 digit, dimana masing- masing mempunyai
jangkauang angka dari 0 sampai 9, apabila angka kombinasi yang dimasukkan
benar maka tampilkan pesan “SUCCESS!” dan bila salah tampilkan
“INTRUDER!”, untuk lebih jelasnya perhatikan tampilan gmbar dibawah ini:
2. Buatlah program aplikasi dialog dengan nama “Jam”, yang digunakan untuk
menghitung sudut terkecil yang dibentuk dari dua jarum jam, yaitu jarum pendek
dan jarum panjang, contoh pada jam 10.30 maka akan membentuk sudut 135o ,
gunakan kontrol spin untuk memasukkan jam dan menit seperti pada gambar
dibawah ini:
Petunjuk:
Misalkan titik acuan 0o jam 12
1 menit = 360/60 = 6o
1 jam = 5 x 6o = 30o
pada jam 10.30 terdiri dari 10 jam dan 30 menit,
maka 10 x 30o = 300o dan 30 x 6o = 180o
sehingga 300 o - 180o = 120 o
ditambah dengan kelebihan derajat jarum pendek karena pergerakan jarum
panjang sebesar perbandingannya, yaitu 0.5o didapatkan dari perbandingan
pergerakan jarum panjang 1 menit maka jam pendek bergerak sebesar
30o /60 = 0.5o , jadi hasil perhitungan sudut adalah 120o + 30 * 0.5o = 135o
3. Buatlah program aplikasi dialog dengan nama “Warna”. Program aplikasi ini
digunakan untuk menetukan campuran warna yang dipilih oleh pengguna, apabila
warna merah lebih besar dari penjumlahan antara warna hijau dan biru maka
57
This watermark does not appear in the registered version - http://www.clicktoconvert.com
tampilkan pada kotak edit “Hasil Warna” yaitu “RED”, sedangkan bila warna
hijau lebih besar dari penjumlahan antara warna merah dan biru maka tampilkan
pada kotak edit diatas “GREEN” dan begitu sebaliknya tampilkan “BLUE”, dan
bila tidak memenuhi syarat tersebut tampilkan “UNKNOWN”, serta apabila
ketiga warna sama tampilkan “GREYSCALE”. Untuk lebih jelasnya perhatikan
tampilan dialog dibawah ini:
Petunjuk:
Berikut ini daftar adalah tipe variabel yang digunakan, nama variabel
disesuaikan sendiri.
58
This watermark does not appear in the registered version - http://www.clicktoconvert.com
Berikut klip program yang digunakan, untuk menangani pergeseran batang slider.
merah=m_slidermerah.GetPos();
hijau=m_sliderhijau.GetPos();
biru=m_sliderbiru.GetPos();
m_staticmerah.Format("%d",merah);
m_statichijau.Format("%d",hijau);
m_staticbiru.Format("%d",biru);
4. Buatlah program aplikasi dialog dengan nama “RGB” yang digunakan untuk
menampilkan warna hasil campuran dari nilai merah, hijau dan biru sebagai
berikut:
Petunjuk:
Perhatikan baris-baris program dibawah ini, yang berguna untuk melakukan
setting pada slider warna merah, meliputi nilai jangkauan batas slider, langkah
pertambahan setiap diklik, dan posisi awal dari batang slider.
m_slidermerah.SetRange(0, 255);
m_slidermerah.SetTicFreq(15);
m_slidermerah.SetPos(128);
59
This watermark does not appear in the registered version - http://www.clicktoconvert.com
Perhatikan juga tipe variable yang digunakan pada aplikasi slider diatas.
Kotak tampilan warna dibuat dari teks static dengan seting pada properties
sebagai berikut:
ü Pertama, pada tab General hapus isi karakter pada kotak edit Caption,
hapus cawang pada kotak check Visible, dan hapus cawang pada kotak
check Group, seperti tampilan dialog dibawah ini:
60
This watermark does not appear in the registered version - http://www.clicktoconvert.com
Tambahkan baris program dibawah ini pada file header sebagai berikut:
private:
COLORREF brColor;
// memilih sikat
CBrush *pBrush = dc.SelectObject(&BrushColor);
m_hasilwarna.GetWindowRect(&Recto);
ScreenToClient(&Recto);
InvalidateRect(&Recto);
61
This watermark does not appear in the registered version - http://www.clicktoconvert.com
5. Buatlah program aplikasi dialog dengan nama “Derajat” yang berfungsi untuk
menunjukkan perkiraan suatu nilai temperatur derajat Celsius yang dimasukkan
melalui kotak edit, pada saat kotak edit diganti nilainya maka batang penunjuk
akan bergerak sesuai dengan angka yang diberikan, dengan jangkauan dari 0
sampai 100. Untuk lebih jelasnya perhatikan dialog dibawah ini:
Petunjuk:
Control IDs: IDC_EDITCELSIUS dan IDC_SCROLLBAR
Member Variable: m_editcelsius (int) dan m_scrollbar (control)
void CDerajatDlg::OnChangeEditcelsius()
{
UpdateData(true);
m_scrollbar.SetScrollPos(100 - m_editcelsius);
UpdateData(false);
}
6. Buatlah program aplikasi dialog “Suhu” yang menampilkan tiga kontrol scoll bar.
Dimana masing- masing mewakili thermometer Celsius, Reamur dan Fahrenheit,
pada saat penunjuk scroll bar Celsius digeser maka otomatis penunjuk pada scroll
bar Reamur dan Fahrenheit menyesuaikan.
62
This watermark does not appear in the registered version - http://www.clicktoconvert.com
Petunjuk:
Berikut adalah tipe-tipe variable yang digunakan pada aplikasi dialog “Suhu”
m_sbcelsius.SetScrollRange(0, 100);
m_sbreamur.SetScrollRange(0, 80);
m_sbfahrenheit.SetScrollRange(32, 212);
m_stcelsius=”0”;
m_streamur=”0”;
m_fahrenheit=”0”;
UpdateData(false);
Tambahkan fungsi baru, yaitu dengan cara masuk ke Class Wizard, pada tab
Message Maps, pada kotak edit Object IDs pilih CSuhuDlg, pada kotak edit
Messages pilih WM_VSCROLL, klik Add Function, kemudian klik Edit Code
untuk menambahkan baris-baris program seperti dibawah ini:
63
This watermark does not appear in the registered version - http://www.clicktoconvert.com
switch (nSBCode) {
case SB_LINELEFT: // Scroll left.
CurPos--; break;
m_sbcelsius.SetScrollPos(CurPos);
64