基于对话框的编程之静态文本控件(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()));

猜你喜欢

转载自www.cnblogs.com/yanchaoyi/p/12658818.html