CStatic使用總結

來源:互聯網
上載者:User
CStatic類對應Toolbox中的Static Text和Picture Control控制項。本篇主要研究怎樣動態建立CStatic控制項,相應的靜態CStatic控制項就會觸類旁通。
先看一下CStaic::Create函數的原型:BOOL Create(   LPCTSTR lpszText,   DWORD dwStyle,   const RECT& rect,   CWnd* pParentWnd,   UINT nID = 0xffff );lpszText   --- 顯示的文本dwStyle    --- 視窗風格               【通用】               WS_CHILD    子視窗,必須有               WS_VISIBLE  視窗可見               【CStatic專用】               SS_ICON     顯示Icon               SS_BITMAP   顯示Bitmap               SS_NOTIFY   向父視窗發送事件訊息               SS_SUNKEN   控制項周邊有半沉的3D邊框 rect       --- 位置及大小pParentWnd --- 父視窗nID        --- ID
一、顯示文本視窗風格:       SS_LEFT   ---  文字靠左對齊       SS_CENTER ---  文字置中對齊       SS_RIGHT  ---  文字靠右對齊
CStatic *pStaticText = new CStatic();pStaticText->Create(    TEXT("Hello Kitty"),    WS_CHILD | WS_VISIBLE | SS_LEFT,    CRect(10, 10, 100, 100),    this);// 設定和對話方塊一樣的字型  pStaticText->SetFont(this->GetFont());
二、顯示ICON視窗風格:SS_CENTERIMAGE --- 使ICON置中顯示,若Icon的實際大小大於控制項的大小,則只顯示置中的部分Icon若不指定該風格,則Create函數中rect指定的大小不起作用,控制項會根據Icon的實際大小調整控制項大小到剛好合適。
CStatic *pStaticIcon = new CStatic();pStaticIcon->Create(    TEXT(""),    WS_CHILD | WS_VISIBLE | SS_ICON | SS_CENTERIMAGE,    CRect(10, 10, 100, 100),    this);HICON hIcon = ::LoadIcon(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDI_ICON1));if (NULL != hIcon){    pStaticIcon->SetIcon(hIcon);}
三、顯示Bitmap視窗風格:SS_CENTERIMAGE --- 使Bitmap置中顯示,若Bitmap的實際大小大於控制項的大小,則只顯示置中的部分Bitmap若不指定該風格,則Create函數中rect指定的大小不起作用,控制項會根據Bitmap的實際大小調整控制項大小到剛好合適。
CStatic *pStaticBitmap = new CStatic();pStaticBitmap->Create(TEXT(""),WS_CHILD | WS_VISIBLE | SS_BITMAP | SS_CENTERIMAGE,CRect(10, 10, 100, 100),this);HBITMAP hBitmap = ::LoadBitmap(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_BITMAP1));if (NULL != hBitmap){pStaticBitmap->SetBitmap(hBitmap);}
Note:若想從本地磁碟載入圖片,請使用以下代碼:
    HBITMAP hBitmap = (HBITMAP)::LoadImage(        AfxGetInstanceHandle(),        TEXT("D:\\test.bmp"),         IMAGE_BITMAP,         50, 50,         LR_DEFAULTCOLOR | LR_LOADFROMFILE | LR_CREATEDIBSECTION);
LR_DEFAULTCOLOR     --- 指定按照原圖的顏色載入圖片,不可少LR_LOADFROMFILE     --- 載入外部的Bitmap,一定要指定LR_CREATEDIBSECTION --- 一般會指定50,50               --- 指定圖片大小                                                如要若按照圖片本身的大小載入,則設定cx,cy為0,0,                                                並且在最後的標誌位加上|LR_DEFAULTSIZE

注意:從網上下載的Bitmap圖片可能用上面的方法載入失敗,返回的HBITMAP為NULL,GetLastError()返回0,這個一般是圖片格式的問題,可以用Windows的畫圖程式開啟Bitmap再另存新檔24位位元影像的bmp格式就可以了。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.