开始建立自己的对话框

 

(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++对话框

   (略)