C++ MFC操作基础 以及 常用控件 - CEdit
程序员文章站
2022-04-27 08:11:06
...
关闭窗口
//这是通过类向导自动生成的 如果看不懂推荐去看我的另一篇博客:
//https://blog.csdn.net/qq_20330595/article/details/82382480
void NewDailog::OnClickedSeeYou()
{
//关闭程序
//DestroyWindow();
//AfxGetMainWnd()->SendMessage(WM_CLOSE);
//关闭对话框
//this->EndDialog(0);
//发出WM_QUIT消息,结束应用程序
//PostQuitMessage(0);
}
模态和非模态:
1.前者弹窗不能操作父界面.
2.后者弹窗可以同时操作.
代码:
模态 弹窗
NewDailog newDailog;
newDailog.DoModal();
非模态 弹窗
NewDailog *newDailog = new NewDailog();
newDailog->Create(IDD_NEW_DIALOG, this);
newDailog->ShowWindow(SW_SHOW);
获取/修改CEdit(EditText)t的文本内容
代码:
//VC++的String 参考:https://www.cnblogs.com/MakeView660/p/6072591.html
CString str;
//GetDlgItem:获取控件(findViewById)
//IDC_SHOW_EDIT:ID
//GetWindowText:getText(); 等同于String str = getText();
//SetWindowTextL:setText();
if (GetDlgItem(IDC_SHOW_EDIT)->GetWindowText(str), str == "Number1:")
GetDlgItem(IDC_SHOW_EDIT)->SetWindowText(_T("数值1:"));
else
GetDlgItem(IDC_SHOW_EDIT)->SetWindowText(_T("Number1:"));
忽略警告
#pragma warning(suppress : 4996)
将两个Edit内容相加
// TODO: 在此添加控件通知处理程序代码
int num1, num2, num3;
//VC++的新String对象
CString c1, c2, c3;
GetDlgItem(IDC_SHOW_EDIT)->GetWindowText(c1);
GetDlgItem(IDC_TEXTVIEW)->GetWindowText(c2);
//_ttoi:API 功能:String to int
num1 = _ttoi(c1);
num2 = _ttoi(c2);
num3 = num1 + num2;
CString str;
//字符串格式化
str.Format(_T("%d"), num3);
//setText
SetDlgItemText(IDC_TEXTVIEW, str);
添加文本内容修改事件(addTextWatcher)
//IDC_SHOW_EDIT :ID
//OnEnChangeShowEdit调用函数
ON_EN_CHANGE(IDC_SHOW_EDIT, &NewDailog::OnEnChangeShowEdit)
动态创建CEdit
添加控件类型变量:
//NewDailog的中被实例化(注意这里C++ 就已经实例化了)
// 文本框的额外变量
CStatic newVariable;
//实现方法DoDataExchange中 加入该变量,对你没看错,第二个参数 IDC_TEXTVIEW
//指的就是IDC_TEXTVIEW这个文本框 也就是为IDC_TEXTVIEW文本框分配一个变量名
void NewDailog::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
DDX_Control(pDX, IDC_TEXTVIEW, newVariable);
}
上面我们为IDC_SHOW_EDIT添加了addTextWatcher事件,现在我们又为IDC_TEXTVIEW添加了全局变量名,那我们可以做一个IDC_TEXTVIEW随IDC_SHOW_EDIT同步的案例。
代码:
void NewDailog::OnEnChangeShowEdit()
{
// TODO: 如果该控件是 RICHEDIT 控件,它将不
// 发送此通知,除非重写 CDialogEx::OnInitDialog()
// 函数并调用 CRichEditCtrl().SetEventMask(),
// 同时将 ENM_CHANGE 标志“或”运算到掩码中。
CString c1;
GetDlgItem(IDC_SHOW_EDIT)->GetWindowText(c1);
//和SetWindowText写法不同 都是设置文本:setText
//SetDlgItemText(IDC_TEXTVIEW, str);
newVariable.SetWindowText(c1);
}
demo下载地址
https://download.csdn.net/download/qq_20330595/10649715
上一篇: 使用VC++ 显示一首诗歌
下一篇: matplotlib 必知的 15 个图