【MFC笔记】动态创建静态文字CStatic和动态创建编辑框Cedit

1、新建工程,选择MFC对话框,在主窗口中添加按钮,按一下按钮跳出一个静态文字。

【MFC笔记】动态创建静态文字CStatic和动态创建编辑框Cedit

【MFC笔记】动态创建静态文字CStatic和动态创建编辑框Cedit

2、给按钮添加事件,先定义两个变量。事件内容内添加如下内容

【MFC笔记】动态创建静态文字CStatic和动态创建编辑框Cedit

【MFC笔记】动态创建静态文字CStatic和动态创建编辑框Cedit

void CMFCApplication2Dlg::OnBnClickedButton1()//按键按下响应的消息
{
    // TODO: 在此添加控件通知处理程序代码
    CRect tabRect;   // 标签控件客户区的位置和大小   
    this->GetClientRect(&tabRect);//获取目前窗口的大小
    if (tabRect.right < x)x = 0;//xy表示窗口左上角的点,如果超出范围就重新从左或上开始
    if (tabRect.bottom < y)y = 0;
    CStatic *pEdit;//定义一个静态文本框实例
    CRect rct(x, y, x+150, y+50);//文本框大小
    pEdit = new CStatic();//动态创建申请内存
    pEdit->Create(L"动态对话框", WS_CHILD | WS_VISIBLE, rct, this,8888 );//动态创建
    pEdit->ShowWindow(SW_SHOW);//显示在屏幕上
    x += 200; y += 100;//改变下次显示的位置
}

3、在此基础上修改为显示可编辑对话框

void CMFCApplication2Dlg::OnBnClickedButton1()
{
    // TODO: 在此添加控件通知处理程序代码
    CRect tabRect;   // 
    this->GetClientRect(&tabRect);
    if (tabRect.right < x)x = 0;
    if (tabRect.bottom < y)y = 0;
    CEdit *pEdit;//CStatic 改为了CEdit
    CRect rct(x, y, x+150, y+50);
    pEdit = new CEdit();//CStatic 改为了CEdit
    pEdit->Create(ES_MULTILINE | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER, rct, this, 8888);//参数改了一下
    pEdit->ShowWindow(SW_SHOW);
    x += 200; y += 100;
}

 

【MFC笔记】动态创建静态文字CStatic和动态创建编辑框Cedit