VC对话框小知识

一、对话框属性: 1.Styles->Clip siblings:排除子窗口之间的相对区域,也就是,当一个特定的窗口接 收到绘图消息时,将所有重叠窗口排除在外,只重绘  指定的子窗口。   Styles->Clip children:当在父窗口内绘图时,排除子窗口区域。 2.More Styles   System modal:系统模式对话框   Absolute align:坐标相对于屏幕原点   Set foreground:设置为前台窗口   No fail create:应用于Windows 95   No idle message:不发送空闲消息   Control:不使用标题栏的对话框   Center:在屏幕中心显示对话框   Center mouse:以鼠标坐标为对话框中心显示对话框   Local edit:指定编辑控件的正文将存储于应用程序的局部数据段中 3.Extended Styles   Tool Window:工具栏窗体   Client edge:对话框边框下凹   Static edge:对话框边框为实边框   Accept files:是否接受文件拖放   Control parent:用<Tab>键在窗口的子窗口间搜索   Context help:在窗口标题栏添加一个问号按钮   No parent notify:以这个风格创建的窗口在创建和销毁时,不向父窗口发送                    WM_PARENTNOTFY消息二、对话框的创建与显示 1.模态对话框:CDlg dlg;                            dlg.DoModal();                            CDialog::OnOK();//或CDialog::OnCancel()关闭模态对话框 2.非模态对话框               CDlg *dlg=new CDlg;                    dlg->Create(IDD_DIALOG,this);               dlg->ShowWindow(SW_SHOW);               dlg->DestroyWindow();//销毁非模态对话框,若在一个非模态对话框中实现OnCancel方法,需在内部调用  DestroyWindow方法                //,不要调用基类的OnCancel方法,因为它调用EndDialog方法将使对话框不可见,但不销毁对话框。               delete dlg;//DestroyWindow只销毁窗口,但不释放对象。delete释放对象。三、遍历对话框中的控件     控件也是窗口,所有可以用CWnd类的方法操作控件,GetTopWindow方法可以获得第一个属于CWnd的子窗口,GetNextWindow方法返回窗口管     理器中的下一个窗口。首先在对话框中添加几个控件,然后在主窗口的OnInitDialog中添加:  CWnd* pWnd = GetTopWindow();  while(pWnd != NULL)  {   int i = pWnd->GetDlgCtrlID();   CString str;   str.Format("ID是:%d",i);   pWnd->SetWindowText(str);   pWnd = pWnd->GetNextWindow();  } 四、消息处理函数共享:指多个连续ID的控件都发出相同的消息,使用ON_CONTROL_RANGE宏来实现,类向导不支持ON_CONTROL_RANGE宏,需手动添加,afx_msg OnButtonClicked(); ON_CONTROL_RANGE(BN_CLICKED,IDC_BUTTON1,IDC_BUTTON3,OnButtonClicked).然后在OnButtonClicked()中添加消息响应。

 

 

更多技术文章请参看施昌权的个人网站: http://www.joyvc.cn

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值