支持对话框控件

对Pen对话框来说,要把选中的线宽存储在CPenDialog类的数据成员m_PenWidth中。

可以通过右击CPenDialog类名,并从上下文菜单中选择适当菜单项的方法添加该数据成员,也可以直接把他添加到类定义。

class CPenDialog:public CDialog

{

//construction

public:

CPenDialog(CWnd* pParent=NULL);//standard constructor

//Dialog Data

public:

int m_PenWidth;//Record the pen width

//Plus the rest of the class definition...

};

使用m_PenWidth数据成员把对应于文档中当前线宽的单选按钮设置为选中状态,还要把对话框中的线宽存储在该成员中,以便在对话框关闭时也可以获取用户的选择。

以便在对话框关闭时也可以获取用户的选择。此刻,可以在类的构造函数中把m_PenWidth初始化为0.

1.初始化控件

可以通过重写在基类CDialog中定义的OnInitDialog()函数来初始化按钮。OnInitDialog()函数是在响应WM_INITDIALOG消息时被调用的,该消息是在执行DoModal()的过中,正好在显示对话框之前发送的。

2.处理按钮消息

可以给CPenDialog类添加BN_CLICKED消息的处理程序。

void CPenDialog::OnPenwidth0()

{

m_PenWidth=0;

}

3.完成对话框的操作

必须修改CSketcherDoc类中的OnPenwidth()处理程序,才能使对话框有效。

//handler for the pen width menu item

void CSketcherDoc::OnPenwidth()

{

CPenDialog aDlg;

//set the pen width in the dialog to that stored in the document

aDlg.m_PenWidth=m_PenWidth;

//DIsplay the dialog as modal

//when closed with OK,get the pen width

if(aDlg.DoModal()==IDOK)

m_PenWidth=aDlg.m_PenWidth;

}

首先把在文档的m_PenWidth成员中存储的线宽传递给aDlg对象的m_PenWidth成员;还需要给CSketcherDoc类添加m_PenWidth成员。

注意:即使用DoModal()函数返回某个值时对话框关闭,aDlg对象也仍然存在,因此可以放心地调用该对象的成员函数。aDlg对象是在从OnPenwidth()函数返回时自动销毁。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值