Rabu, 18 Maret 2009

Pendahuluan I : Perkenalan MFC

Tujuan:
1. Mahasiswa dapat membuat program pengolahan citra menggunakan Visual C++ dengan MFC.
2. Mahasiswa dapat membuat dialog menggunakan Visual C++ dengan MFC.

Pada pratikum yang pertama ini membahas tentang pengenalan MFC.Ini adalah bahasan praktikum yang pertama dari mata kuliah pengolahan citra digital atau yang sering disebut dengan image prosessing.

Apakah sebenarnya MFC itu ?

MFC sebenarnya adalah merupakan komponen yang terdapat pada IDE (Integarated Development Environment) dari Visual C++ 6 yang mana pada komponen ini atau area ini digunakan untuk membuat atau mengedit tampilan dialog box yang bukan form window
Pada perkuliahan semester sebelum - sebelumnya telah digunakan software Visual C++ yaitu pada mata kuliah pemrograman aka tetapi tidak semua komponen - komponen IDE yang ada didalamnya beum digunakan secara keseluruhan, dan saat ini salah satu komponen IDE terebut digunakan pada praktikum pengolahan citra digital. Adapun komponen- komponen IDE yang lainnya antara laian yaitu : Toolbox, Dialog Editor(MFC), Solution Explorer, Class View, Resource View, dan properties Window.
Karena MFC ini digunakan pada praktikum pengolahan citra maka sudah seharusnya kita mengetahui terlebih dahulu apa itu pengolahan citra, pengolahan citra atau image prossesing adalah suatu pemrosesan gambar dari gambar asli menjadi gambar lain sesuai dengan keinginan kita.
IDE merupakan singkatan dari Integrated Development Environment, apa ya itu??setelah kulihat di kmus online, yang artinya integrated itu mengintegrasikan, trus development itu pengembangan, dan environment itu lingkungan,,hmm,trnyata masih rumit juga ya, klo dimaknai satupersatu,,tapi intinya IDE digunakan untuk membuat lingkungan (baca : sistem) yang dibangun secara terintegrasi.
Untuk mencobanya, dibutuhkan beberapa hal sebagai berikut :
1. Seperangkat komputer dengan software Visual C++ 6.0
2. Modul praktikum (baca : buku manual prosedur praktikum)
3. Siapkan smangat dan niat untuk menuntut ilmu
4. Awali dengan bismillah
5. Perhatikan dan praktikkan, tahap demi tahap prosedur praktikum yang ada.

Percobaan:
Menjalankan Visual C++ dengan MFC

1. Membuka Visual C++ 6.0
Pilih menu : Start->Programs->Microsoft Visual Studio 6.0->Microsoft Visual C++ 6.0
2. Memberi nama program
Pilih menu : File->New->Projects->MFC AppWizard(exe)
Isi Project name misalnya dengan: dialog
Tekan tombol OK
3. Memilih isi program
Step 1 :
What tipe of application would you like to create (aplikasi apa yang ingin dibuat) pilih dialog based untuk membuat aplikasi memakai dialog. Perhatikan gambar 1.4. a dialog step 1. Tekan tombol Next.
Step 2 :
1. What features would you like to include?
(fitur apa saja yang akan dimasukkan) pilih About box dan 3D
controls untuk pilihan standar.
2. What features would you like to include?
(mendukung aplikasi apa ?) pilih ActiveX controls untuk pilihan
standar.
3. Would you like to include WOSA support ? Window Sockets tidak
dipilih untuk pilihan standard.
4. Please enter a title for your dialog ? Title sudah berisi text sama
dengan nama project untuk pilihan standard
Perhatikan gambar 1.4.b. dialog step 2. Tekan tombol Next.
Step 3 :
1. What style of project would you like ?
Pilihan standard dan yang aktif hanya MFC Standard.
2. Would you like to generate source file comments ? pilihan standard Yes, Please
3. How would you like to use the MFC Library ? pilihan standard As a shared DLL
Tekan tombol Next
Step 4 :
AppWizard creates the following classes for you
Tekan tombol Finish akan muncul New Project Information.
Kemudian tekan tombol OK. Tampilan awal dialog akan dihasilkan

4. Cara menjalankan program
Pilih menu : Build->Execute (!), Dialog Hasil Execute
Tekan tombol Yes, untuk menutup aplikasi.

Cara Mendisain Dialog
Catatan : Jika Dialog Editor tidak tampak buka pada Resource View (Ctrl-Shift-E) double click pada IDD_TEST_DIALOG.
1. Cara membuat dialog
Buat aplikasi AppWizard seperti pada praktikum 1 dan beri nama project dengan Dialog
Pilih ResourceView pada workspace
Pilih folder paling atas dengan cara klik pada tanda +
Pilih folder dialog dengan cara klik pada tanda +
Klik 2 kali IDD_DIALOG_DIALOG

2. Menghapus dan menambah control pada dialog
Untuk menghapus control : aktifkan control dengan cara klik pada area control lanjutkan dengan menekan tombol delete. Cobalah untuk menghapus control : text TODO, button OK dan Cancel.
control pada toolbox Untuk menambah control: (button) pilih icon drag drop ke editor dialog.
(static text) pilih icon control pada toolbox drag drop ke editor dialog.
(picture box) pilih icon control pada toolbox drag drop ke editor dialog.
Tambahkan control (dua button, 1 static text, 1 picture) pada dialog editor

3. Mengaktifkan control
Pilih control button1, double clik, pada dialog Add Member Function klik OK.
Atau klik kanan, pilih klik ClassWizard, pada MFC Class Wizard Dialog

Messages aktifkan BN_CLICKED, double clik, pada dialog Add Member Function klik OK.
4. Rubah terlebih dahulu ID dari static text = ID_label dan ID dari picture = ID_pic1, dengan cara aktifkan control dan klik kanan pilih properti.

5. Pada dialog MFC classwizard,Member Variabels edit type dan member dari control sebagai berikut

6. Menulis fungsi pada button1 clik Tambahkan program untuk menampilkan pesan pada static text seperti
dibawah ini
void CDialogDlg::OnButton1()
{
// TODO: Add your control notification handler code here
SetDlgItemText(IDC_label,"Belajar Prak Citra dgn VC++ dan MFC");
}
Jalankan program dengan memilih menu Build->Execute (!)

7. Tambahkan deklarasi kelas CBitmap pada File View – Header Files – dialogDlg.h
// Construction
public:
CDialogDlg(CWnd* pParent = NULL); // standard constructor
CBitmap m_bmpBitmap;
//

8. Menulis fungsi pada button2 clik
void CDialogDlg::OnButton2()
{
// TODO: Add your control notification handler code here
CDC* pDC = m_pic1.GetDC();//
CDC dcMem1;
CRect rect;//kotak di picture
BITMAP bm;//
HBITMAP
hBitmap=(HBITMAP)::LoadImage(AfxGetInstanceHandle(),
"pens.bmp",IMAGE_BITMAP, 0, 0,
LR_LOADFROMFILE|LR_CREATEDIBSECTION);
if(hBitmap)
{
if(m_bmpBitmap.DeleteObject())
m_bmpBitmap.Detach();
m_bmpBitmap.Attach(hBitmap);
}
m_pic1.GetClientRect(rect);//
m_bmpBitmap.GetBitmap(&bm);//
dcMem1.CreateCompatibleDC(pDC);
dcMem1.SelectObject(&m_bmpBitmap);
pDC->StretchBlt(0,0,rect.Width(),rect.Height(),&dcMem1,
0,0,bm.bmWidth,bm.bmHeight,SRCCOPY);//
}
Jalankan program dengan memilih menu Build->Execute (!)