- 相關(guān)推薦
VC++中靜態(tài)控件的特殊用法
【摘要】 本文將通過示例程序來介紹Visual C++ 6.0靜態(tài)控件的一些特殊用法 【關(guān)鍵詞】Visual C++ 靜態(tài)控件 圖標(biāo) 位圖使用Visual C++ 6.0編制軟件時,靜態(tài)控件是最常用的控件之一。一般情況下,靜態(tài)控件用作那些沒有固定標(biāo)題文本屬性的控件(如文本編輯控件、列表框等)的標(biāo)簽,或者用來為控件分組,或者用來顯示一些提示性的文件。實際上,靜態(tài)控件除了顯示靜態(tài)文本這一基本功能外,還有許多其他的特殊功能,如在靜態(tài)控件中可以顯示圖標(biāo)、位圖,甚至還可以在靜態(tài)控件中顯示動畫。本文將通過示例程序來介紹靜態(tài)控件的這些特殊用法。
顯示圖標(biāo)
⑴ 使用AppWizard創(chuàng)建一個基于對話框的MFC應(yīng)用程序,設(shè)置其工程名為ShowIco.
⑵ 在對話框上增加一個靜態(tài)控件。需要注意的是,有資源管理器添加的靜態(tài)控件在默認(rèn)情況下其ID均為IDC_STATIC,因此,如果需要在程序中區(qū)分和操縱各個不同的靜態(tài)控件,一般情況下,需要更改新添加的靜態(tài)控件的ID值。這里將靜態(tài)控件的ID值設(shè)置為IDC_SHOWICO.
、 在資源管理器中添加圖標(biāo)資源,其ID為IDI_ICON1.
⑷ 使用ClassWizard添加WM_INITDIALOG消息處理函數(shù)OnInitDialog.
、 在OnInitDialog函數(shù)中下面的代碼:
//獲得指向靜態(tài)控件的指針
CStatic *pStatic=(CStatic *)GetDlgItem(IDC_SHOWICO);
//加載圖標(biāo)
HICON hIcon=AfxGetApp()->LoadIcon(IDI_ICON1);
//設(shè)置靜態(tài)控件的樣式,使其可以使用圖標(biāo),并試圖標(biāo)顯示使居中
pStatic->ModifyStyle(0xF,SS_ICON|SS_CENTERIMAGE);
//設(shè)置靜態(tài)控件圖標(biāo)
pStatic->SetIcon(hIcon);
運行該程序,顯示如圖1所示。
圖1 使用靜態(tài)控件顯示圖標(biāo)
2.顯示位圖
、 使用AppWizard創(chuàng)建一個基于對話框的MFC應(yīng)用程序,設(shè)置其工程名為ShowBmp.
⑵ 在對話框上增加一個靜態(tài)控件,將靜態(tài)控件的ID值設(shè)置為IDC_SHOWBMP.
、 在資源管理其中添加位圖資源,其ID為IDB_INFO.
、 使用ClassWizard添加WM_INITDIALOG消息處理函數(shù)OnInitDialog.
、 在OnInitDialog函數(shù)中下面的代碼:
//獲得指向靜態(tài)控件的指針
CStatic *pStatic=(CStatic *)GetDlgItem(IDC_SHOWBMP);
//獲得位圖句柄
HBITMAP Bitmap=::LoadBitmap(AfxGetApp()_hInstance,
MAKINTRESOURCE(IDB_INFO));
//設(shè)置靜態(tài)控件的樣式,使其可以使用位圖,并試位標(biāo)顯示使居中
pStatic->ModifyStyle(0xF,SS_BITMAP|SS_CENTERIMAGE);
//設(shè)置靜態(tài)控件顯示位圖
pStatic->SetBitmap(hBitmap);
運行該程序即可。
顯示動畫
編寫一個字符串在靜態(tài)控件中不停的移動的程序。
使用AppWizard創(chuàng)建一個基于對話框的MFC應(yīng)用程序,設(shè)置其工程名為ShowAnimation.
在對話框上增加一個靜態(tài)控件。將靜態(tài)控件的ID值設(shè)置為IDC_PREVIEW.
使用ClassWizard添加WM_INITDIALOG消息處理函數(shù)OnInitDialog和WM_TIMER的消息處理函數(shù)OnTimer.
⑷ 在CshowAnimationDlg類中,增加兩個變量m_x和m_y,用以表示字符串的坐標(biāo)。
⑸ 在OnInitDialog函數(shù)中添加下列代碼:
m_x=0;
m_y=0;
KillTimer(1);
VERIFY(SetTimer(1, 500, NULL) != 0);
在CshowAnimationDlg類中,增加一個成員函數(shù)Draw()如下:
void CshowAnimationDlg::Draw()
{
CWnd *pWnd=GetDlgItem(IDC_PREVIEW);
CDC *pDC=pWnd->GetDC();
RECT rect;
pWnd->GetClientRect(&rect);
pWnd->Invalidate();
pWnd->UpdateWindow();
pDC->SelectStockObject(BLACK_BRUSH);
pDC->Rectangle(0,0,rect.right,rect.bottom);
pDC->SetTextColor(RGB(255,0,0));
pDC->SetBkColor(RGB(0,0,0));
if((m_x>=rect.right)||(m_y>=rect.bottom-20))
{ m_x=0;
m_y=0;
}
pDC->TextOut(m_x,m_y,“動畫”);
}
在OnTimer函數(shù)中,添加如下代碼:
if (nIDEvent == 1)
{
m_x+=5;
m_y+=5;
Draw();
}
else CWnd::OnTimer(nIDEvent);
運行該程序,顯示如圖2所示。
圖2在靜態(tài)控件中顯示動畫
【VC++中靜態(tài)控件的特殊用法】相關(guān)文章:
VC 中靜態(tài)控件的特殊用法04-16
在VC++中用ActiveX控件實現(xiàn)與單片機(jī)的串行通信08-06
在VB中如何使用 Winsock 控件08-06
動詞have在中學(xué)英語中的用法08-08
進(jìn)行時不表示進(jìn)行的一些特殊用法08-08
讓學(xué)生感受靜態(tài)美08-05
靜態(tài)圖像的直接顯示08-06