MFC之靜態文字框的使用

2021-07-04 23:59:04 字數 1927 閱讀 3037

如果我們想在程式中動態建立靜態文字框,而不是像前面那樣直接從toolbox中拖到對話方塊模板上,那麼就需要使用cstatic類的成員函式create。create函式的原型如下:

virtual bool create(

lpctstr lpsztext,

dword dwstyle,

const rect& rect,

cwnd* pparentwnd,

uint nid = 0xffff

);引數說明:

lpsztext:指定要在控制項中顯示的文字。如果為null則不會顯示任何文字。

dwstyle:指定靜態控制項的風格。靜態文字框一般都是對話方塊或其他視窗的子視窗,而且是可見的,所以應該包含ws_child 和ws_visible風格,另外,msdn中說明,還可以為其設定「static control styles」中風格的任意組合。下面大概為大家說明幾個風格:

ss_bitmap

乙個點陣圖將顯示在靜態控制項中,create函式的lpsztext引數字串是資源檔案中定義的位圖名。此風格忽略寬度和高度引數,靜態控制項自動調整它的尺寸來適應位圖

ss_blackframe

指定乙個具有與視窗邊界同色的框,預設為黑色

ss_blackrect

指定乙個具有與視窗邊界同色的實矩形,預設為黑色

ss_center

使顯示的正文居中對齊,正文可以換行

ss_grayframe

指定乙個具有與螢幕背景同色的邊框

ss_grayrect

指定乙個具有與螢幕背景同色的實矩形

ss_icon

使控制項顯示乙個在資源中定義的圖示,圖示的名字由create 函式的lpsztext 引數指定,圖示自動調整它的尺寸

ss_left

左對齊正文,正文能迴繞

ss_leftnowordwrap

左對齊正文,正文不能迴繞

ss_notify

使控制項能向父視窗傳送滑鼠事件訊息

ss_right

右對齊正文,可以迴繞

ss_******

使靜態正文在執行時不能被改變並使正文顯示在單行中

ss_whiteframe

指定乙個具有與視窗背景同色的框,預設為白色

ss_whiterect

指定乙個具有與視窗背景同色的實心矩形,預設為白色

我們在對話方塊模板新增靜態文字框時,可以在靜態文字框的屬性頁中設定它的風格,很多都與上面的風格是對應的,例如,******屬性就相當於ss_******風格。

rect:指定靜態控制項的位置和大小,它可以是rect結構體型別,也可以是crect類的物件。

pparentwnd:指定靜態控制項的父視窗,通常是乙個cdialog物件,不能是null。

nid:指定靜態控制項的id。

cstatic類的成員函式簡介

簡單介紹下cstatic類的主要成員函式,下面是成員函式列表。

getbitmap

獲取由setbitmap函式設定的點陣圖的控制代碼

getcursor 

獲取由setcursor設定的游標的控制代碼

getenhmetafile

獲取由setenhmetafile設定的增強圖元檔案的控制代碼

geticon

獲取由seticon設定的圖示的控制代碼

setbitmap

設定要在靜態控制項中顯示的點陣圖

setcursor

設定要在靜態控制項中顯示的游標

setenhmetafile

設定要在靜態控制項中顯示的增強圖元檔案

seticon

設定要在靜態控制項中顯示的圖示

除了上述成員函式外,由於cstatic是cwnd的派生類,cwnd的很多成員函式也可以使用,例如,getwindowtext、getwindowrect、setwindowtext等。

MFC之編輯框和靜態文字框

編輯框有兩種狀態,乙個是使用者可輸入操作,乙個是只能讀,可在元件屬性中找到read only 設定為true則只能讀使用者無法操作 操作控制項的兩種方式前面說過了,後面都是以變數的方式進行操作 cedit m edit edit.setwindowtext t 編輯框 引數為cstring 型別cs...

MFC學習 動態建立靜態文字框

動態建立static,需要有乙個生命週期足夠長的靜態控制項指標變數,所以最好宣告乙個類的成員變數 類的標頭檔案.h新增成員變數 cstatic m pstatic 類的原始檔.cpp 需要建立靜態文字框的對話方塊的建構函式 m pstatic null 建立靜態控制項函式裡 if m pstatic...

13 MFC 靜態文字框CStatic

靜態文字框是最簡單的控制項,它主要用來顯示文字資訊,不能接受使用者輸入,一般不需要連線變數,也不需要處理訊息。靜態文字框的重要屬性有 常用介面 介面功能 cwnd setwindowtext 設定控制項內容 cwnd getwindowtext 獲取控制項內容 cstatic setbitmap 設...