教程七(对话框)

来源:互联网 发布:ubuntu snmp配置 编辑:程序博客网 时间:2024/05/16 10:21
这一教程的知识点有:
1、创建模态、非模态对话框
2、得到对话框中控件的文本的办法(有七种,介绍最常用的两种)
3、完成对话框的收缩和扩展功能
4、完成按回车键,输入光标在空间上的移动功能。
5.通过单击一个按钮,动态创建另一个按钮,并销毁按钮窗口
 分别介绍:
1、创建模态、非模态对话框
模态:
CTestDlg dlg;
dlg.doModal();
非模态:
CTestDlg *pDlg=new CTestDlg();//如果这不是局部的没有必要创建指针,创建对象就行了
pDlg->Create(IDD_DIALOG1,this);
pDlg->ShowWindow(SW_SHOW);


2、得到对话框中控件的文本的办法(有七种,介绍最常用的两种)
方法1:
int num1,num2,num3;
char ch1[10],ch2[10],ch3[10];

GetDlgItem(IDC_EDIT1)->GetWindowText(ch1,10);
GetDlgItem(IDC_EDIT2)->GetWindowText(ch2,10);

num1=atoi(ch1);
num2=atoi(ch2);
num3=num1+num2;
itoa(num3,ch3,10);

GetDlgItem(IDC_EDIT3)->SetWindowText(ch3);
方法2:利用控件的控制变量
int num1,num2,num3;
char ch1[10],ch2[10],ch3[10];

m_edit1.GetWindowText(ch1,10);
m_edit2.GetWindowText(ch2,10);

num1=atoi(ch1);
num2=atoi(ch2);
num3=num1+num2;
itoa(num3,ch3,10);

m_edit3.SetWindowText(ch3);
方法3:利用控件的值变量
int num1,num2,num3;
UpdateData();
m_num3=m_num1+m_num2;
UpdateData(FALSE);
3、完成对话框的收缩和扩展功能
CString str;
if(GetDlgItemText(IDC_BUTTON2,str),str=="收缩<<")
{
SetDlgItemText(IDC_BUTTON2,"扩展>>");
}
else
{
SetDlgItemText(IDC_BUTTON2,"收缩<<");
}

static CRect rectLarge;
static CRect rectSmall;
if(rectLarge.IsRectNull())
{
CRect rectSeparator;
GetWindowRect(&rectLarge);
GetDlgItem(IDC_SEPARATOR)->GetWindowRect(&rectSeparator);

rectSmall.left=rectLarge.left;
rectSmall.top=rectLarge.top;
rectSmall.right=rectLarge.right;
rectSmall.bottom=rectSeparator.bottom;
}
if(str=="收缩<<")
{
SetWindowPos(NULL,0,0,rectSmall.Width(),rectSmall.Height(),
SWP_NOMOVE | SWP_NOZORDER);
}
else
{
SetWindowPos(NULL,0,0,rectLarge.Width(),rectLarge.Height(),
SWP_NOMOVE | SWP_NOZORDER);
}
4、完成按回车键,输入光标在空间上的移动功能。
GetNextDlgTabItem(GetFocus())->SetFocus();//安照按ctrl+D出来的序号进行移动
5.通过单击一个按钮,动态创建另一个按钮,并销毁按钮窗口
CButton m_btn;
m_btn.create("名字",类型,CRect(0,0,100,100),父窗口(this),按钮ID);
m_btn.DestroyWindow();//销毁窗口
有图有真相:教程七(对话框)

编程小知识:
1、对于任意一个从CWnd派生的类,器内部都有一个成员变量m_hwnd,例如:按钮控件变量可以判断m_btn.m_hwnd.可以用来判断改控件的句柄是否有值。
2、如果动态创建一个东西。在第二次创建的时候可能会报错,说重复创建。可以用到1中的知识点了就。先判断他的句柄有没有值,如果没有在创建,当然也可以设置一个BOOL型的变量来判断。
3.静态文本框的作用,起标识作用。

0 0
原创粉丝点击