基於對話框的編程之靜態文本控件(Static Text)的使用


一、效果圖

二、具體步驟

(1)設置內容和獲取內容

1、新建一個MFC應用程序,命名為02 CStaticText,應用程序類型選擇基於對話框,其他默認設置

2、修改靜態文本控件的顯示內容

新增一個靜態文本控件,右鍵屬性修改Caption,即可修改可顯示內容

3、新增兩個按鈕,一個用於設置靜態文本控件的內容,另一個用於獲取內容,效果如下:

4、為靜態文本控件添加變量

右鍵選擇Add Variable..

 此時,會提示以下錯誤,這是由於以STATIC為結尾的ID不可以添加變量,需要修改ID

右鍵屬性,修改ID為ID_TEXT

重新添加變量,設置訪問權限為private,變量名稱為m_text,點擊Finish

找到DoDataExchange函數,我們可以看到控件名已經和一個變量名相綁定

5、為第一個按鈕添加點擊事件,設置靜態文本控件的內容

//點擊按鈕,讓哈哈變呵呵
void CMy02CStaticTextDlg::OnBnClickedButton1()
{
    // TODO: Add your control notification handler code here
    //設置文本內容
    m_text.SetWindowTextW(TEXT("呵呵"));
}

6、為第二個按鈕添加點擊事件,獲取文本中的內容

//點擊按鈕,獲取文本中的內容,並且彈出
void CMy02CStaticTextDlg::OnBnClickedButton2()
{
    // TODO: Add your control notification handler code here
    CString str;
    m_text.GetWindowTextW(str);
    MessageBox(str);
}

運行程序,此時點擊第一個按鈕,可將哈哈設為呵呵,再點擊第二個按鈕,會彈出呵呵

(2)利用靜態文本控件顯示一個位圖

1、新建一個靜態文本控件,修改ID為ID_PIC,添加變量,設置訪問權限和變量名稱

2、將要顯示的圖片放到目錄下

2、在OnInitDialog初始化函數中添加顯示代碼

    // TODO: Add extra initialization here
    //用static_Text顯示圖片
    //設置靜態控件窗口風格為位圖居中顯示
    m_pic.ModifyStyle(0xf, SS_BITMAP | SS_CENTERIMAGE);

    //通過路徑獲取bitmap句柄
#define HBMP(filepath,width,height) (HBITMAP)LoadImage(AfxGetInstanceHandle(),filepath,IMAGE_BITMAP,width,height,LR_LOADFROMFILE|LR_CREATEDIBSECTION)
    
    //寬高設置應該按照控件的大小去設置
    CRect rect;
    m_pic.GetWindowRect(rect);

    //靜態控件設置bitmap
    m_pic.SetBitmap(HBMP(TEXT("./1.bmp"), rect.Width(), rect.Height()));

 (3)禁用按鈕

1、新增一個按鈕,修改顯示內容為^_^

2、為按鈕添加變量,設置訪問權限和變量名稱

3、添加點擊事件,編輯代碼如下

void CMy02CStaticTextDlg::OnBnClickedButton3()
{
    // TODO: Add your control notification handler code here
    //點擊按鈕,修改顯示內容
    m_btn.SetWindowTextW(TEXT("O(∩_∩"));

    //獲取內容
    CString str;
    m_btn.GetWindowTextW(str);
    MessageBox(str);

    //設置點擊狀態
    m_btn.EnableWindow(FALSE);
}

4、效果如下


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM