①mfc组合框(下拉列表)自动排序了,我要按输入数据时的顺序排列怎么办?
把属性里面sort改为false
②CString 与 string 间的转换
CString 转 string
CString cstrTest = _T("test");
string strTest;
string = CT2A(cstrTest.GetString());
string 转 CString
string strTest="test";
CString cstrTest;
cstrTest= CA2T(strTest.c_str());
CString转int
CString strNum("100");
int num;
//ANSI
num = atoi(strNum);
num = _ttoi(strNum);
//UNICODE
num = atoi(CT2A(strNum.Getbuff()));
num = _ttoi(strNum);
使用 _ttoi 可以适用于 ANSI和UNICODE两种版本。
③MFC对话框button控件置灰
GetDlgItem(IDC_XXX)->EnableWindow(FALSE)//IDC_XXX为你想变灰的按钮的ID
④MFC改变Edit控件字体的大小
首先,为edit控件绑定一个控制变量:
m_edit;
然后,在对话框类中添加一个成员变量:注:此处必须是成员变量,不能是局部变量。
CFont m_oFont;
3、最后就是,利用SetFont函数修改字体了,主要有两种方式,可以在对话框的初始化函数OnInitDialog中实现:
m_oFont.CreatePointFont(180, _T("隶书"));
m_edit.SetFont(&m_oFont);
⑤mfc 的编辑框中怎么显示系统的当前时间
在OnInitDialog()中添加代码:
CString strTime;
CTime tm;
tm=CTime::GetCurrentTime(); //获取当前系统时间
strTime=tm.Format("%y年%m月%d日 %X"); //格式du化系统时间。即使系统时 间按照Format中设置的格式显dao示
SetDlgItemText(IDC_TIME,strTime); //初始化编辑框显示
SetTimer(1,1000,NULL); //启动定时器给对话框添加WM_TIMER消息处理函数,添加如下代码:
CString strTime;
CTime tm;
tm=CTime::GetCurrentTime();
strTime=tm.Format("%Y-%m-%d %H:%M:%S");
SetDlgItemText(IDC_TIME,strTime); //显示系统时间
⑥CFile类写入txt,txt之前的内容被覆盖的问题
首先,不能用CFile::ModeCreate模式,应当用CFile::ModeWrite模式
然后,每次打开文件要使用SeekToEnd函数
CStdioFile file;
file.Open("C:\\a.txt",CFile::modeWrite);
file.SeekToEnd();
file.WriteString("HELLO WORLD!");
file.Close();
下面这个方法我没试过
char szBuf[] = "123";
CFile file("C:\\File.txt", CFile::modeCreate|CFile::modeReadWrite|CFile::modeNoTruncate);
file.SeekToEnd();
file.Write(szBuf, lstrlen(szBuf));
file.Close();
⑦MFC按下按钮改变按钮的文本以及获取按钮文本
(1)获取按钮的文本具体示例如下:
//用于缓冲的临时CString
CStringtempstr;
//获取ID_SimPause按钮的文本内容,其中ID_SimPause为按钮的ID
GetDlgItem(ID_SimPause)->GetWindowText(tempstr);
(2)设置按钮的文本具体示例如下:
//,其中ID_SimPause为按钮的ID,””内为按钮的文字内容
GetDlgItem(ID_SimPause)->SetWindowText("仿真恢复");