版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、上學(xué)吧()C+基礎(chǔ)輔導(dǎo):CStatic控件的基本使用CStatic 繼承于 CWnd,是一種特殊的窗體。他可以顯示文本字符串(這也是最常用的用法)、圖標(biāo)、指針(cursor)、位圖和增強(qiáng)圖文元件. 通常靜態(tài)控件不提供輸入和輸出。但是如果把他的屬性設(shè)置為 SS_NOTIFY,他可以通知其父窗口的擊鼠標(biāo)事件。一。CStatic 用于顯示文本如果文本不變,可以直接設(shè)置其 Caption。如果想在運(yùn)行過程中改變其顯示文本,可以用如下方式:CStatic *pStatic=(CStatic*)GetDlgItem(IDC_STATIC); pStatic->SetWindowText("
2、Just a Test of Static Control!");二。CStatic 用于顯示圖標(biāo)如果要顯示圖標(biāo),則必須要設(shè)置窗口屬性為 SS_ICON 和 SS_CENTERIMAGE,實(shí)例代碼如下:CStatic* pStatic = (CStatic*)GetDlgItem(IDC_STATIC); LONG style = GetWindowLong(pStatic->GetSafeHwnd(), GWL_STYLE);style |= SS_ICON;第 1 頁,共 19頁上學(xué)吧為您提供“計(jì)算機(jī)等級(jí)考試”復(fù)習(xí)資料下載:上學(xué)吧()style |= SS_CENTERIM
3、AGE;SetWindowLong(pStatic->GetSafeHwnd(),GWL_STYLE,style); pStatic->SetIcon(m_hIcon);三。CStatic 用于顯示指針 cursor如果要顯示 cursor,則必須要設(shè)置窗口屬性為 SS_ICON 和 SS_CENTERIMAGE,實(shí)例代碼如下:CStatic* pStatic = (CStatic*)GetDlgItem(IDC_STATIC); LONG style = GetWindowLong(pStatic->GetSafeHwnd(), GWL_STYLE);style |= SS
4、_ICON;style |= SS_CENTERIMAGE;SetWindowLong(pStatic->GetSafeHwnd(),GWL_STYLE,style); pStatic->SetCursor(OnQueryDragIcon();四。CStatic 用于顯示位圖如果要顯示圖標(biāo),則必須要設(shè)置窗口屬性為 SS_BITMAP 和 SS_CENTERIMAGE,實(shí)例代碼如下:第 2 頁,共 19頁上學(xué)吧為您提供“計(jì)算機(jī)等級(jí)考試”復(fù)習(xí)資料下載:上學(xué)吧()/獲得指向靜態(tài)控件的指針CStatic *pStatic=(CStatic*)GetDlgItem(IDC_STATIC);
5、/獲得位圖句柄HBITMAP hBitmap=:LoadBitmap(AfxGetApp()->m_hInstance,MAKEINTRESOURCE(IDB_BITMAP2);/LONG result = SetWindowLong(pStatic->GetSafeHwnd(),GWL_STYLE,style);/設(shè)置靜態(tài)控件的樣式,使其可以使用位圖,并試位標(biāo)顯示使居中pStatic->ModifyStyle(0xF,SS_BITMAP|SS_CENTERIMAGE); /設(shè)置靜態(tài)控件顯示位圖pStatic->SetBitmap(hBitmap);使用Visual C
6、+ 6.0編制軟件時(shí),靜態(tài)控件是最常用的控件之一。一般情況下,靜態(tài)控件用作那些沒有固定標(biāo)題文本屬性的控件(如文本編輯控件、列表框等)的標(biāo)簽,或者用來為控件分組,或者用來顯示一些提示性的文件。實(shí)際上,靜態(tài)控件除了顯示靜態(tài)文本這一基第 3 頁,共 19頁上學(xué)吧為您提供“計(jì)算機(jī)等級(jí)考試”復(fù)習(xí)資料下載:上學(xué)吧()本功能外,還有許多其他的特殊功能,如在靜態(tài)控件中可以顯示圖標(biāo)、位圖,甚至還可以在靜態(tài)控件中顯示動(dòng)畫。本文將通過示例程序來介紹靜態(tài)控件的這些特殊用法。1 顯示圖標(biāo) 使用AppWizard創(chuàng)建一個(gè)基于對(duì)話框的MFC應(yīng)用程序,設(shè)置其工程名為ShowIco。 在對(duì)話框上增加一個(gè)靜態(tài)控件。需要注意的是,
7、有資源管理器添加的靜態(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);第 4 頁,共 19頁上學(xué)吧為您提供“計(jì)算機(jī)等級(jí)考試
8、”復(fù)習(xí)資料下載:上學(xué)吧()/加載圖標(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)行該程序.2顯示位圖 使用AppWizard創(chuàng)建一個(gè)基于對(duì)話框的MFC應(yīng)用程序,設(shè)置其工程名為ShowBmp。 在對(duì)話框上增加一個(gè)靜態(tài)控件,將靜態(tài)控件的ID值設(shè)置為IDC_SHOWBMP。 在資源管理其中添加位圖資源,其ID為ID
9、B_INFO。 使用ClassWizard添加WM_INITDIALOG消息處理函數(shù)OnInitDialog。第 5 頁,共 19頁上學(xué)吧為您提供“計(jì)算機(jī)等級(jí)考試”復(fù)習(xí)資料下載:上學(xué)吧() 在OnInitDialog函數(shù)中下面的代碼:/獲得指向靜態(tài)控件的指針CStatic *pStatic=(CStatic *)GetDlgItem(IDC_SHOWBMP); /獲得位圖句柄HBITMAP Bitmap=:LoadBitmap(AfxGetApp()_hInstance, MAKINTRESOURCE(IDB_INFO);/設(shè)置靜態(tài)控件的樣式,使其可以使用位圖,并試位標(biāo)顯示使居中pStatic
10、->ModifyStyle(0xF,SS_BITMAP|SS_CENTERIMAGE); /設(shè)置靜態(tài)控件顯示位圖pStatic->SetBitmap(hBitmap);運(yùn)行該程序即可。3 顯示動(dòng)畫編寫一個(gè)字符串在靜態(tài)控件中不停的移動(dòng)的程序。第 6 頁,共 19頁上學(xué)吧為您提供“計(jì)算機(jī)等級(jí)考試”復(fù)習(xí)資料下載:上學(xué)吧() 使用AppWizard創(chuàng)建一個(gè)基于對(duì)話框的MFC應(yīng)用程序,設(shè)置其工程名為ShowAnimation。 在對(duì)話框上增加一個(gè)靜態(tài)控件。將靜態(tài)控件的ID值設(shè)置為IDC_PREVIEW。 使用ClassWizard添加WM_INITDIALOG消息處理函數(shù)OnInitDial
11、og和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);1 在CshowAnimationDlg類中,增加一個(gè)成員函數(shù)Draw()如下:void CshowAnimationDlg:Draw()第 7 頁,共 19頁上學(xué)吧為您提供“計(jì)算機(jī)等級(jí)考試”復(fù)習(xí)資料下載:上學(xué)吧()CWnd *pWnd=GetDlgItem(IDC_PREVIEW)
12、;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>=r
13、ect.bottom-20) m_x=0;m_y=0;第 8 頁,共 19頁上學(xué)吧為您提供“計(jì)算機(jī)等級(jí)考試”復(fù)習(xí)資料下載:上學(xué)吧()pDC->TextOut(m_x,m_y,"動(dòng)畫");2 在OnTimer函數(shù)中,添加如下代碼:if (nIDEvent = 1)m_x+=5;m_y+=5;Draw();else CWnd:OnTimer(nIDEvent);MFC中 CStatic類(靜態(tài)控件類)【說明】CStatic類提供了一個(gè)Windows靜態(tài)控件的功能。一個(gè)靜態(tài)控件可以用來顯示一個(gè)文本字符串、方框、矩形、圖標(biāo)、光標(biāo)、位圖或增強(qiáng)的圖元文件。它可以被用來作為標(biāo)簽、方
14、框或用來分隔其它的控件。靜態(tài)控件通常不接收輸入,也不提供輸出;但是,如果它具有SS_NOTIFY風(fēng)格,則它可以通知其父有關(guān)設(shè)備點(diǎn)擊的消息。第 9 頁,共 19頁上學(xué)吧為您提供“計(jì)算機(jī)等級(jí)考試”復(fù)習(xí)資料下載:上學(xué)吧()創(chuàng)建一個(gè)靜態(tài)控件分兩步。首先,調(diào)用構(gòu)造函數(shù)來構(gòu)造一個(gè)CStatic類的對(duì)象,然后調(diào)用成員函數(shù)Create來創(chuàng)建此靜態(tài)控件并將它分配給當(dāng)前的CStatic類的對(duì)象。如果你是在一個(gè)對(duì)話框中創(chuàng)建了一個(gè)靜態(tài)控件(通過一個(gè)對(duì)話框資源),則當(dāng)用戶關(guān)閉這個(gè)對(duì)話框時(shí), CStatic類的對(duì)象被自動(dòng)銷毀。 如果你是在一個(gè)窗口中創(chuàng)建了一個(gè)CStatic類的對(duì)象,則可能需要你自己來銷毀它。在一個(gè)窗口的堆
15、棧中創(chuàng)建的CStatic類的對(duì)象將自動(dòng)被銷毀。如果你是使用new函數(shù)在堆中創(chuàng)建CStatic類的對(duì)象,則當(dāng)你使用完后,必須調(diào)用delete來銷毀這個(gè)CStatic類的對(duì)象?!編?名】<afxwin.h>【成員函數(shù)】(1)BOOL Create(LPCTSTR lpszText, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID = 0xffff);【返回值】如果本成員函數(shù)調(diào)用成功則返回非零值;否則返回0。【參 數(shù)】lpszText第 10 頁,共 19頁上學(xué)吧為您提供“計(jì)算機(jī)等級(jí)考試”復(fù)習(xí)資料下載:上學(xué)吧
16、()指定要放置在靜態(tài)控件中的文本。如果是NULL,則表示沒有文本是可見的。dwStyle指定靜態(tài)控件的窗口風(fēng)格。以下任何靜態(tài)控件風(fēng)格的組合都可以用于這個(gè)控件。SS_BITMAP指定在靜態(tài)控件中顯示一個(gè)被定義在資源文件中的位圖。該風(fēng)格將忽略靜態(tài)控件的高度和寬度,靜態(tài)控件將根據(jù)位圖的大小自動(dòng)調(diào)節(jié)自身的尺寸。SS_BLACKFRAME建立一個(gè)黑色的邊框。SS_BLACKRECT建立一個(gè)黑色的矩形。SS_CENTER使文字在靜態(tài)控件中水平居中。SS_CENTERIMAGE第 11 頁,共 19頁上學(xué)吧為您提供“計(jì)算機(jī)等級(jí)考試”復(fù)習(xí)資料下載:上學(xué)吧()當(dāng)靜態(tài)控件用于顯示文本時(shí),該風(fēng)格將使文本在靜態(tài)控件中
17、垂直居中。當(dāng)靜態(tài)控件用于顯示位圖或圖標(biāo)時(shí),該風(fēng)格將使位圖或圖標(biāo)在靜態(tài)控件中垂直居中,當(dāng)位圖或圖標(biāo)小于靜態(tài)控件時(shí),靜態(tài)控件將使用位圖或圖標(biāo)左上角的點(diǎn)的顏色填充空白處。SS_ENHMETAFILE指定在靜態(tài)控件中顯示一個(gè)增強(qiáng)型圖元文件。該風(fēng)格將不會(huì)忽略靜態(tài)控件的高度和寬度,而圖元文件將調(diào)節(jié)自身的大小來適應(yīng)靜態(tài)控件的尺寸。SS_ETCHEDFRAME建立一個(gè)浮雕邊框。SS_ETCHEDHORZ建立一個(gè)邊框,并將頂端邊框設(shè)置為浮雕風(fēng)格。SS_ETCHEDVERT建立一個(gè)邊框,并將左側(cè)邊框設(shè)置為浮雕風(fēng)格。SS_GRAYFRAME建立一個(gè)灰色的邊框。第 12 頁,共 19頁上學(xué)吧為您提供“計(jì)算機(jī)等級(jí)考試”
18、復(fù)習(xí)資料下載:上學(xué)吧()SS_GRAYRECT建立一個(gè)灰色的矩形。SS_ICON指定在靜態(tài)控件中顯示一個(gè)被定義在資源文件中的圖標(biāo)。該風(fēng)格將忽略靜態(tài)控件的高度和寬度,靜態(tài)控件將根據(jù)位圖的大小自動(dòng)調(diào)節(jié)自身的尺寸。SS_LEFT使文字在靜態(tài)控件中左對(duì)齊。SS_LEFTNOWORDWRAP在缺省情況下,靜態(tài)控件把n和t都作為換行標(biāo)記。只有在設(shè)置本風(fēng)格后,靜態(tài)控件才把t看作是制表鍵(缺省時(shí)制表鍵的寬度為8個(gè)字符的寬度)。SS_NOPREFIX該標(biāo)志表示終止對(duì)前綴字符的處理。通常,本成員函數(shù)將前綴助記符&解釋為一個(gè)指令,即在&后面的字符下面劃一下劃線。并且將&&解釋成一個(gè)單
19、個(gè)的&指令。通過指令指定該標(biāo)志,這種處理就不再進(jìn)行了。第 13 頁,共 19頁上學(xué)吧為您提供“計(jì)算機(jī)等級(jí)考試”復(fù)習(xí)資料下載:上學(xué)吧()SS_NOTIFY在缺省情況下,靜態(tài)控件是不響應(yīng)鼠標(biāo)事件的。只有在設(shè)置該風(fēng)格后,當(dāng)用戶單擊靜態(tài)控件時(shí),靜態(tài)控件才向父窗口發(fā)送STN_CLICKED通知。SS_OWNERDRAW在指定該風(fēng)格后,當(dāng)靜態(tài)控件在視覺外觀發(fā)生變化時(shí),該靜態(tài)控件的屬主窗口將響應(yīng)WM_DRAWITEM消息。SS_RIGHT使文字在靜態(tài)控件中左對(duì)齊。SS_SIMPLE只顯示一行文本,文本不能被剪切或替換(父窗口不能處理CTLCOLOR消息)。SS_SUNKEN設(shè)置一個(gè)下沉的靜態(tài)控件,當(dāng)
20、靜態(tài)控件為一個(gè)方框時(shí),方框的四邊下沉;當(dāng)靜態(tài)控件為一個(gè)矩形時(shí),整個(gè)矩形下沉。SS_USERITEM第 14 頁,共 19頁上學(xué)吧為您提供“計(jì)算機(jī)等級(jí)考試”復(fù)習(xí)資料下載:上學(xué)吧()建立一個(gè)用戶自定義項(xiàng)目。SS_WHITEFRAME建立一個(gè)白色的邊框。SS_WHITERECT建立一個(gè)白色的矩形。rect指定靜態(tài)控件的位置和大小。它可以是一個(gè)RECT結(jié)構(gòu)類型的數(shù)據(jù)或一個(gè)CRect類的對(duì)象。pParentWnd指定CStatic類的對(duì)象的父窗口,通常是一個(gè)CDialog類的對(duì)象。它不能是NULL。nID = 0xffff指定靜態(tài)控件的控件標(biāo)識(shí)?!咀⑨尅吭谑褂渺o態(tài)控件顯示文本而且沒有設(shè)置SS_LEFTN
21、OWORDWRAP風(fēng)格時(shí),n和t都憂患行的作用。兩者的區(qū)別是在一第 15 頁,共 19頁上學(xué)吧為您提供“計(jì)算機(jī)等級(jí)考試”復(fù)習(xí)資料下載:上學(xué)吧()行文本的長度大于靜態(tài)控件的寬度時(shí)使用n換行將使該行文本的下一行也為空行,但使用t則無此現(xiàn)象。(2)CStatic();【注 釋】構(gòu)造一個(gè)空的CStatic類的對(duì)象。(3)HBITMAP GetBitmap() const;【返回值】返回一個(gè)當(dāng)前位圖的句柄,如果沒有設(shè)置位圖,則返回NULL?!咀⑨尅看顺蓡T函數(shù)用來獲取先前用成員函數(shù)SetBitmap設(shè)置的與CStatic類的對(duì)象關(guān)聯(lián)的位圖句柄。(4)HCURSOR GetCursor();【返回值】返回一
22、個(gè)當(dāng)前圖標(biāo)句柄。如果沒有設(shè)置圖標(biāo)則返回NULL?!咀⑨尅看顺蓡T函數(shù)用來獲取先前用成員函數(shù)SetCursor設(shè)置的與CStatic類的對(duì)象關(guān)聯(lián)的光標(biāo)句柄。(5)HENHMETAFILE GetEnhMetaFile() const;【返回值】返回一個(gè)當(dāng)前增強(qiáng)圖元文件句柄。如果沒有設(shè)置增強(qiáng)的圖元文件則返回NULL第 16 頁,共 19頁上學(xué)吧為您提供“計(jì)算機(jī)等級(jí)考試”復(fù)習(xí)資料下載:上學(xué)吧()【注釋】此成員函數(shù)用來獲取先前用成員函數(shù)SetEnhMetaFile設(shè)置的與CStatic類的對(duì)象關(guān)聯(lián)的增強(qiáng)的圖元文件句柄。(6)HICON GetIcon();【返回值】返回一個(gè)當(dāng)前圖標(biāo)句柄。如果沒有設(shè)置增強(qiáng)
23、的圖標(biāo)則返回NULL?!咀⑨尅看顺蓡T函數(shù)用來獲取先前用成員函數(shù)SetIcon設(shè)置的與CStatic對(duì)象關(guān)聯(lián)關(guān)聯(lián)的圖標(biāo)句柄。(7)HBITMAP SetBitmap(HBITMAP hBitmap) const;【返回值】返回先前與此靜態(tài)控件關(guān)聯(lián)的位圖的句柄。如果沒有與此靜態(tài)控件關(guān)聯(lián)的位圖,則返回NULL?!緟?數(shù)】hBitmap要繪制在此靜態(tài)控件中的位圖句柄?!咀⑨尅看顺蓡T函數(shù)用來將一個(gè)新的位圖與此靜態(tài)控件關(guān)聯(lián)。這個(gè)位圖將被自動(dòng)繪制在此靜態(tài)控件中。缺省的,它將被繪制在左上角,并且此靜態(tài)控件將根據(jù)位圖的大小來調(diào)整尺寸。使用此成員函數(shù)必須設(shè)置風(fēng)格SS_BITMAP。第 17 頁,共 19頁上學(xué)吧為您提供“計(jì)算機(jī)等級(jí)考試”復(fù)習(xí)資料下
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度百貨商場(chǎng)停車場(chǎng)管理合同樣本3篇
- 二零二五版員工股權(quán)激勵(lì)與管理合同模板3篇
- 二零二五年防盜門研發(fā)、生產(chǎn)、銷售一體化合作協(xié)議3篇
- 2024版家具經(jīng)銷商合作協(xié)議范本
- 二零二五年度音樂器材行業(yè)標(biāo)準(zhǔn)制定與執(zhí)行合同3篇
- 2024版云計(jì)算服務(wù)租賃合同
- 二零二五版?zhèn)€人子女教育還借款合同3篇
- 2024版前期物業(yè)服務(wù)管理協(xié)議
- 二零二五版體育健身器材研發(fā)與銷售合同3篇
- 二零二五年航空航天單位企業(yè)勞務(wù)派遣及技術(shù)研發(fā)合同
- 2024年國家公務(wù)員考試公共基礎(chǔ)知識(shí)全真模擬試題及答案(共四套)
- 工程勘察資質(zhì)分級(jí)標(biāo)準(zhǔn)和工程設(shè)計(jì)資質(zhì)分級(jí)標(biāo)準(zhǔn)
- 2023年四級(jí)計(jì)算機(jī)程序設(shè)計(jì)員核心考點(diǎn)題庫300題(含答案)
- 標(biāo)準(zhǔn)輔助航空攝影技術(shù)規(guī)范
- 2023年中國人保財(cái)險(xiǎn)校園招聘筆試參考題庫附帶答案詳解
- hdx7底層黑磚刷寫和字庫救磚教程bysmartyou
- 年會(huì)頒獎(jiǎng)晚會(huì)頒獎(jiǎng)盛典簡(jiǎn)約PPT模板
- 年產(chǎn)10000噸柑橘飲料的工廠設(shè)計(jì)
- 雷電知識(shí)、雷電災(zāi)害防御知識(shí)匯總-上(單選題庫)
- 導(dǎo)學(xué)案 高中英語人教版必修三Unit4 Astronomy the science of the stars
- 培訓(xùn)互動(dòng)技巧
評(píng)論
0/150
提交評(píng)論