开始建立自己的对话框
(1)手工建立对话框一般如下所示
#include <Symbol.h>
#include <MyFrame.h>
//窗口的“Draw”回调函数,该回调函数被WinSail调用前鼠标已经自动关闭了!
void far OnDraw_MyDialog(CObject* pObj)//pObj指针是窗口本身
{
CDialog* pDialog = (CDialog
*)pObj;
//这里加入您的代码
//您可以在这里“画图”、“显示文字”等等。
//……
}
//单击了按钮控件“Button1”触发该函数
void far ClickButton1_MyDialog (CObject* pObj) //pObj指针是对应的控件
{
CDialog* pDialog = (CDialog
*)pObj->GetParent();
CEdit* pEdit1 =
(CEdit *)pDialog->ObjectFromID(1001);//假设Edit1的ID号是1001
CEdit* pEdit2 =
(CEdit *)pDialog->ObjectFromID(1002);//假设Edit2的ID号是1002
//这里加入您的代码
//您可以在做您自己想做的事情!
//……
char buf[256];
::sprintf (buf, “第一个编辑框的内容是:%s吗?\n第二个编辑框的内容是:%s吗?\n\t”,
pEdit1->GetBuffer(),
pEdit2->GetBuffer());
if (IDYES == ::AfxMessageBox(“演示”,
buf, MB_YESNO | MB_DEFBUTTON2)) //单击了“Yes”按钮
{
//……
}
}
void MyDialog()
{
//分配对话框实例
CDialog* pDialog = new
CDialog;
//建立窗口
pDialog->CreateWindow(0, 0,
640, 480, “我的第一个窗口”);
//将窗口居中,只能跟在CreateWindow()函数之后调用。
pDialog->Center();
//设置窗口的“Draw”回调函数
pDialog->SetDrawFc (::OnDraw_MyDialog);
//分配关闭按钮、最小化按钮、最大化按钮,由于其位置是由窗口标题栏确定的,所以不用调用CreateObject()函数
new CCloseButton(pDialog);
new CMinButton(pDialog);
new CMaxButton(pDialog);
//分配第一个编辑框控件Edit1的实例
CEdit* pEdit1 = new CEdit(pDialog);
//建立第一个编辑框控件Edit1
pEdit1->CreateObject (10,
100 + 0 * 24, 120, 24, NULL);
//设置第一个编辑框控件Edit1的最大可输入字符数为32个字符。
pEdit1->SetMaxCount(32);//默认为255个
//设置第一个编辑框控件Edit1的初始内容为“WinSail
V2.0”
pEdit1->SetBuffer(“我是第一个控件Edit1”);
//设置第一个编辑框控件Edit1的ID号为“1001”
pEdit1->SetID(1001);
//分配第二个编辑框控件Edit2的实例
CEdit* pEdit2 = new CEdit(pDialog);
//建立第二个编辑框控件Edit2
pEdit2->CreateObject (10,
100 + 1 * 24, 120, 24, NULL);
//设置第二个编辑框控件Edit2的最大可输入字符数为32个字符。
pEdit2->SetMaxCount(32);//默认为255个
//设置第二个编辑框控件Edit2的初始内容为“WinSail
V2.0”
pEdit2->SetBuffer(“我是第二个控件Edit2”);
//设置第二个编辑框控件Edit2的ID号为“1002”
pEdit2->SetID(1002);
//分配第一个按钮控件Button1的实例
CButton* pButton1 = new CButton(pDialog);
//建立第一个按钮控件Button1
pButton1->CreateObject (10,
100 + 3 * 24, 120, 24, “演示按钮”);
//设置第一个按钮控件Button1的关联函数
pButton1->SetFc(ClickButton1_MyDialog);
//显示对话框
pDialog->ShowWindow();
//进入窗口消息循环
int nResult =
pDialog->DoModal();
//删除对话框
DELETE (pDialog);
//返回
return;
}
(2)利用Visual C++对话框
(略)