- 相關(guān)推薦
VC 中靜態(tài)控件的特殊用法
【摘要】 本文將通過(guò)示例程序來(lái)介紹Visual C 6.0靜態(tài)控件的一些特殊用法 【關(guān)鍵詞】Visual C 靜態(tài)控件 圖標(biāo) 位圖使用Visual C 6.0編制軟件時(shí),靜態(tài)控件是最常用的控件之一。一般情況下,靜態(tài)控件用作那些沒(méi)有固定標(biāo)題文本屬性的控件(如文本編輯控件、列表框等)的標(biāo)簽,或者用來(lái)為控件分組,或者用來(lái)顯示一些提示性的文件。實(shí)際上,靜態(tài)控件除了顯示靜態(tài)文本這一基本功能外,還有許多其他的特殊功能,如在靜態(tài)控件中可以顯示圖標(biāo)、位圖,甚至還可以在靜態(tài)控件中顯示動(dòng)畫。本文將通過(guò)示例程序來(lái)介紹靜態(tài)控件的這些特殊用法。
- 顯示圖標(biāo)
⑴ 使用AppWizard創(chuàng)建一個(gè)基于對(duì)話框的MFC應(yīng)用程序,設(shè)置其工程名為ShowIco。
⑵ 在對(duì)話框上增加一個(gè)靜態(tài)控件。需要注意的是,有資源管理器添加的靜態(tài)控件在默認(rèn)情況下其ID均為IDC_STATIC,因此,如果需要在程序中區(qū)分和操縱各個(gè)不同的靜態(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);
運(yùn)行該程序,顯示如圖1所示。圖1 使用靜態(tài)控件顯示圖標(biāo)
2.顯示位圖
⑴ 使用AppWizard創(chuàng)建一個(gè)基于對(duì)話框的MFC應(yīng)用程序,設(shè)置其工程名為ShowBmp。
⑵ 在對(duì)話框上增加一個(gè)靜態(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);
運(yùn)行該程序即可。
- 顯示動(dòng)畫
編寫一個(gè)字符串在靜態(tài)控件中不停的移動(dòng)的程序。
- 使用AppWizard創(chuàng)建一個(gè)基于對(duì)話框的MFC應(yīng)用程序,設(shè)置其工程名為ShowAnimation。
- 在對(duì)話框上增加一個(gè)靜態(tài)控件。將靜態(tài)控件的ID值設(shè)置為IDC_PREVIEW。
- 使用ClassWizard添加WM_INITDIALOG消息處理函數(shù)OnInitDialog和WM_TIMER的消息處理函數(shù)OnTimer。
⑷ 在CshowAnimationDlg類中,增加兩個(gè)變量m_x和m_y,用以表示字符串的坐標(biāo)。
⑸ 在OnInitDialog函數(shù)中添加下列代碼:
m_x=0;
m_y=0;
KillTimer(1);
VERIFY(SetTimer(1, 500, NULL) != 0);
- 在CshowAnimationDlg類中,增加一個(gè)成員函數(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,"動(dòng)畫");
}
- 在OnTimer函數(shù)中,添加如下代碼:
if (nIDEvent == 1)
{
m_x =5;
m_y =5;
Draw();
}
else CWnd::OnTimer(nIDEvent);
運(yùn)行該程序,顯示如圖2所示。
圖2在靜態(tài)控件中顯示動(dòng)畫
【VC 中靜態(tài)控件的特殊用法】相關(guān)文章:
for的用法03-18
特殊的作文03-01
特殊的禮物02-18
特殊的生日02-20
談分隔號(hào)的用法06-04
特殊名字大全符號(hào) 霸氣的特殊符號(hào)名字01-17
特殊生日作文01-09
特殊的朋友作文02-23
特殊的聲音作文02-23
特殊的生日作文02-23