c++⼏种常⽤的界⾯控件的使⽤1
版权声明:作者:真爱⽆限 出处:blog.csdn/pukuimin1226 本⽂为博主原创⽂章版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在⽂章页⾯明显位置给出原⽂链接. blog.csdn/pukuimin1226/article/details/22741637
//c++⽂本输⼊框的操作:
bool isnumber(char *str1,char *str2) //判断它是不是输⼊的数字
{
int i,flag=1;
for(i=0;i<strlen(str1);i++)
{
if ( (str1[i]<'0' || str1[i]>'9')&&str1[i]!='.'&&str1[i]!='.') //右边⼩键盘上的和中间键盘上的点它不认为是相同的
{
flag=0;return FALSE;
}
}
if (flag==1)
{
for(i=0;i<strlen(str2);i++)
if ( (str2[i]<'0' || str2[i]>'9') &&str2[i]!='.'&&str1[i]!='.')
{
flag=1;return FALSE;
}
}
return TRUE;
}
void Main_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify)
{
switch(id)
{
case IDC_OK:
{
TCHAR str1[256],str2[256];
GetDlgItemText(hwnd,IDC_EDIT1,str1,sizeof(str1)); //得到输⼊的字符串
GetDlgItemText(hwnd,IDC_EDIT2,str2,sizeof(str2));//得到输⼊的字符串
if (isnumber(str1,str2))
{
double i1=atof(str1);
double i2=atof(str2);
double i3;
char str[256];
HWND hwndcombo1 = GetDlgItem(hwnd,IDC_COMBO1); //通过这个得到选择框的句柄
int cursel=ComboBox_GetCurSel(hwndcombo1); // 通过句柄得到选择了当前编号值
// 0 1 2 3分别为 + - * / 的编号值
// ComboBox_GetLBText(hwndcombo1,cursel,str); // 通过编号值得到字符串值,放到str ⾥⾯,这⾥只有⼏个选项,直接⽤编号值判断就⾏
switch(cursel)
{
case 0:
i3=i1+i2;
break;
case 1:
i3=i1-i2;
break;
case 2:
i3=i1*i2;
break;
case 3:
i3=i1/i2;
break;
}
TCHAR str3[256];
sprintf(str3,"%lf",i3);
SetDlgItemText(hwnd,IDC_EDIT3,str3);
SetDlgItemText(hwnd,IDC_EDIT3,str3);
}
else
SetDlgItemText(hwnd,IDC_EDIT3,"请输⼊数字");
}
break;
default:
break;
}
}
//c++下拉框的操作。
case IDC_BUTTONADD: //添加
{
TCHAR STR[256];
GetDlgItemText(hwnd,IDC_EDITADD,STR,sizeof(STR)); // 得到添加框内的字符串
if (STR!=NULL)
{
HWND COM1=GetDlgItem(hwnd,IDC_COMBO1); // 组合框句柄
ComboBox_AddString(COM1,STR); // 向⾥⾯加⼊字符串
SetDlgItemText(hwnd,IDC_EDITADD,NULL); // 将添加框清空
MessageBox(hwnd,"添加成功!","提⽰",MB_OK);
}
}
break;
case IDC_BUTTONDEL: // 删除
{
HWND COM1=GetDlgItem(hwnd,IDC_COMBO1);
int cur=ComboBox_GetCurSel(COM1); // 得到当前选择的项
if (CB_ERR==cur) // 如果没有选择东西
{
MessageBox(hwnd,"没有数据被选择","错误",MB_OK|MB_ICONERROR);
}
ComboBox_DeleteString(COM1,cur);
}
break;
case IDC_BUTTONSEARCH: // 查
{
控件的使用
TCHAR STRS[256];
GetDlgItemText(hwnd,IDC_EDITSEARCH,STRS,sizeof(STRS)); // 得到查的字符串 HWND EDITS= GetDlgItem(hwnd,IDC_COMBO1);
bool bfind=FALSE;
int i=0,icount=ComboBox_GetCount(EDITS),ifind; // 得到组合框中的数据有多少条 for(;i<icount;i++) // 逐条搜索
{
TCHAR strte[256];
ComboBox_GetLBText(EDITS,i,strte); // 得到每条数据的字符串
if (strcmp(strte,STRS)==0) // ⽐较
{
bfind=true; ifind=i;break;
}
}
if (bfind) // 到才提⽰,并将组合框中选中项设为到的值
{
ComboBox_SetCurSel(EDITS,ifind);
MessageBox(hwnd,TEXT("到了"),TEXT("结果"),MB_OK);
}
}
break;
//C++ 中列表框控件的使⽤():
void Main_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify)
{
switch(id)
{
{
case IDC_OK:
{
MessageBox(hwnd,TEXT("adsdad"),TEXT("问好"),MB_OK);
}
break;
case IDC_btnAdd:
{
SendDlgItemMessage(hwnd,IDC_LIST1,LB_ADDSTRING,0,(LPARAM)"aaa"); SendDlgItemMessage(hwnd,IDC_LIST1,LB_ADDSTRING,0,(LPARAM)"bbb"); SendDlgItemMessage(hwnd,IDC_LIST1,LB_ADDSTRING,0,(LPARAM)"ccc"); SendDlgItemMessage(hwnd,IDC_LIST1,LB_ADDSTRING,0,(LPARAM)"ddd");
}
break;
case IDC_LIST1://IDC_LIST1的事件
{
if(LBN_DBLCLK==codeNotify)//双击事件
{
int index=SendDlgItemMessage(hwnd,IDC_LIST1,LB_GETCURSEL,0,0);
TCHAR buff[255];
SendDlgItemMessage(hwnd,IDC_LIST1,LB_GETTEXT,index,(LPARAM)buff); MessageBox(hwnd,buff,"提⽰",MB_OK);
}
else if(LBN_SELCHANGE==codeNotify)//选项改变事件
{
int index=SendDlgItemMessage(hwnd,IDC_LIST1,LB_GETCURSEL,0,0);
TCHAR buff[255];
SendDlgItemMessage(hwnd,IDC_LIST1,LB_GETTEXT,index,(LPARAM)buff); MessageBox(hwnd,buff,"提⽰",MB_OK);
}
}
break;
default:
break;
}
}
//C++MFC中列表框控件的使⽤():
CListBox *listbox2= (CListBox*)GetDlgItem(IDC_LIST2); //获得列表框的指针
listbox2->AddString("菠萝"); //为列表框添加列表项
listbox2->AddString("苹果");
listbox2->AddString("桃⼦");
listbox2->AddString("西⽠");
listbox2->AddString("⾹蕉");
CListBox *listbox3= (CListBox*)GetDlgItem(IDC_LIST3); //获得列表框的指针
listbox3->AddString("格尺"); //为列表框添加列表项
listbox3->AddString("橡⽪");
listbox3->AddString("胶带");
listbox3->AddString("铅笔");
//【加在 BOOL CListTestDlg::OnInitDialog()⾥的】
void CListTestDlg::OnButton1()
{
CListBox *listbox1= (CListBox*) GetDlgItem(IDC_LIST1); //得到列表控件的指针 listbox1->AddString("北京"); //向列表中添加内容
listbox1->AddString("长春");
listbox1->AddString("上海");
listbox1->AddString("南京");
}
void CListTestDlg::OnButton2()
void CListTestDlg::OnButton2()
{
CListBox *listbox2=(CListBox*)GetDlgItem(IDC_LIST2); //得到列表控件的指针
listbox2->SelectString(0,"桃⼦"); //查列表中“桃⼦”⼀项
}
void CListTestDlg::OnSelchangeList3()
{
CListBox *listbox3= (CListBox*)GetDlgItem(IDC_LIST3); //得到列表框的指针
int select;
select=listbox3->GetCurSel(); //得到当前列表框中选项的索引
CString str;
listbox3->GetText(select,str); //得到列表索引指向的⽂本内容
CButton *button3= (CButton*)GetDlgItem(IDC_BUTTON3); //得到按钮指针
button3->SetWindowText(str); //设置按钮⽂本
}
void CListTestDlg::OnButton4()
{
CListBox *listbox4= (CListBox*) GetDlgItem(IDC_LIST4); //得到列表控件指针
listbox4->Dir(DDL_DIRECTORY,"c://*.*"); //向列表框中添加C盘驱动器⽂件名列表}
/
/C++MFC中按钮控件的使⽤:
CButton *button1=(CButton*)GetDlgItem(IDC_BUTTON1); //得到按钮的指针
button1->ModifyStyle(0,BS_ICON); //设置按钮风格为图表显⽰
button1->SetIcon(AfxGetApp()->LoadIcon(IDI_ICON1)); //按钮以图标显⽰
CButton *button3=(CButton*)GetDlgItem(IDC_BUTTON5);
button3->SetButtonStyle(BS_RADIOBUTTON); //设置按钮风格为单选按钮
//【上⾯的是放在 BOOL CButtonTestDlg::OnInitDialog() 中的】
void CButtonTestDlg::OnButton2()
{
SetCursor(AfxGetApp()->LoadCursor(IDC_CURSOR1)); //设置光标
}
void CButtonTestDlg::OnButton3()
{
CButton *button5=(CButton*)GetDlgItem(IDC_BUTTON5); //得到按钮指针
button5->SetCheck(true); //选中单选按钮
}
void CButtonTestDlg::OnButton4()
{
CButton *button5=(CButton*)GetDlgItem(IDC_BUTTON5); //得到按钮指针
button5->SetCheck(false); //取消单选按钮的选中
}
//C++MFC中编辑框的使⽤:
/
/四个编辑框,四个按钮,不同功能
void CEditTestDlg::OnButton1()
{
CEdit* edit1= (CEdit*)GetDlgItem(IDC_EDIT1); //得到编辑框的指针
edit1->SetWindowText("it科技"); //设置编辑框中的内容
}
void CEditTestDlg::OnButton2()
{
CEdit* edit2= (CEdit*)GetDlgItem(IDC_EDIT2); //得到编辑框的指针
edit2->Undo(); //取消上⼀次的操作
}
void CEditTestDlg::OnButton3()
{
CEdit* edit3= (CEdit*)GetDlgItem(IDC_EDIT3); //得到编辑框的指针
edit3->SetPasswordChar('*'); //设置密码输⼊字符
}
void CEditTestDlg::OnButton4()
{
CEdit* edit4= (CEdit*)GetDlgItem(IDC_EDIT4);
edit4->ModifyStyle(0,ES_NUMBER); //第⼀个参数代表要移除的窗⼝风格,第⼆个是要添加的窗⼝风格(只能输⼊数字)}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论