Chương 2.Tạo cỏc Menu, ToolBar và cỏc thao tỏc cơ bản
3.2.4. Đẩy một icon lờn nỳt bấm trong ứng dụng.
Việc đưa một biểu tượng lờn nỳt bấm sẽ tăng thờm tớnh bắt mắt cho giao diện của chương trỡnh ứng dụng (Ở đõy lấy ứng dụng mang tờn Font). Đầu tiờn phải sử dụng hộp thoại Insert Resource (mục 5 đó đề cập) bằng cỏch kớch chuột phải vào Resource của ứng dụng trong cõy thư mục Resource View, chọn New để tạo ra icon mới bằng cỏch vẽ trực tiếp trong VC++ 6.0 và chọn Import khi tải Icon cú sẵn .Icon mới tạo ra được mặc định địa chỉ điều khiển là IDI_ICON1 .Ta sẽ thực hiện thao tỏc đưa Icon này lờn nỳt bấm cú địa chỉ là IDC_BUTTON1. Đổi tờn cỏc icon và button này thành IDI_MUSIC và IDC_MUSIC.
Dựng sự kiện WM_INITDIALOG tỏc động lờn giao diện chớnh của chương trỡnh :
Hỡnh 3.30.Tỏc động WM_INITDIALOG lờn lớp CFontDlg
Ấn Add Function, tự động mặc định cho ta kiểu hàm tỏc động là OnInitDialog, ấn Edit code để soạn mó lệnh
BOOL CFontDlg::OnInitDialog( )//Hàm tỏc động , hàm này thường //dựng để khởi tạo
{
CDialog::OnInitDialog( );
HICON m_browse; //Tạo một biến kiểu HICON để tải icon
m_browse=AfxGetApp( )->LoadIcon(IDI_MUSIC);// Tải icon cú địa chỉ IDI_MUSIC và gỏn cho biến m_browse .
CButton* m_dk=(CButton*)GetDlgItem(IDC_MUSIC);
//Tạo ra biế /m_dk điều khiển sự hiển thị của nỳt bấm IDC_MUSIC m_dk->SetIcon(m_browse);// Đặt icon lờn nỳt bấm
return TRUE; }
Cho chạy chương trỡnh chỳng ta sẽ thấy nỳt bấm sẽ cú hỡnh là Icon IDC_MUSIC (ở đõy là biểu tượng WD media player):
H ỡnh 3.31. Đẩy Icon lờn nỳt bấm
3.2.5.Tạo cỏc ToolTip (chỳ thớch ) cho đối tượng .
Cỏc tooltip này sẽ được tỏc động lờn đối tượng thụng qua sự kiện
WM_INITDIALOG.Tạo một ứng dụng MFC AppWizard với kiểu Dialog based mang tờn Font.
Kớch chuột vào File View và tỡm đến file FontDlg.h để khai bỏo một biến m_toolTip thuộc lớp CtoolTipCtrl(là lớp quản lý cỏc chỳ thớch cho đối tượng ) và kiểu truy cập
Public.
… public:
CToolTipCtrl m_toolTip; ………
Trong ứng dụng cần thờm một chỳ thớch cho nỳt bấm cú địa chỉ điều khiển là
IDC_MUSIC (vốn đó được thay bằng một Icon nờn thờm chỳ thớch để người dựng dễ
nhận biết ). Chỳ thớch này cú nội dung là “ Find PathName of Wave soud to play” . Để hiển thị được chỳ thớch này phải thực hiện 2 bước :
Bước 1{ Gỏn chỳ thớch lờn nỳt bấm ( cú định nghĩa màu nền, màu chữ ); } Bước 2{Relay để chỳ thớch đú hiển thị được;}
Bước 1:
Ấn Ctrl+W để xuất hiện hộp thoại MFC class Wizard :
Chọn Class name là CFontDlg, Object IDs là CFontDlg, kớch đỳp vào Messages
WM_INITDIALOG để hàm mặc định là OnInitDialog và ấn Edit Code để viết chương
Hỡnh 3.32.Tỏc động sự kiện WM_INITDIALOG. BOOL CFontDlg::OnInitDialog()
{
CDialog::OnInitDialog(); ………
m_toolTip.Create(this);//Khởi tạo chỳ thớch
m_toolTip.Activate(TRUE);//Kich hoạt chỳ thớch
m_toolTip.SetTipBkColor(RGB(255,255,255));// Đặt màu nền cho //chỳ thớch
m_toolTip.SetTipTextColor(RGB(0,0,255));// Đặt màu chữ
m_toolTip.AddTool(GetDlgItem(IDC_MUSIC),"Find PathName of Wave sound to play ");//Đưa nội dung chỳ thớch lờn nỳt bấm cú địa
//chỉ là IDC_MUSIC.
…..
return TRUE; }
Bước 2: Thờm sự kiện PreTranslateMessage để relay và hiển thị chỳ thớch, cũng với thao tỏc như tỏc động sự kiện WM_INITDIALOG nhưng giờ là chọn sự kiện
PreTranslateMessage ấn edit code và viết lệnh như dưới :
BOOL CFontDlg::PreTranslateMessage(MSG* pMsg) {
m_toolTip.RelayEvent(pMsg);//Relay sự kiện cú mặt chỳ thớch //tỏc động lờn nỳt bấm
return CDialog::PreTranslateMessage(pMsg); }
Hỡnh 3.33.Kết quả hiển thị chỳ thớch khi lướt chuột qua nỳt bấm.
3.2.6.Tỏc động tới biểu tượng chuột trong ứng dụng .
Trong ứng dụng về ActiveX ở mục 11, tỏc động biểu tượng chuột bằng cỏch thờm sự