对话框的一些操作

1.响应一个按键,弹出对话框

 

void CBreathCmDlg::OnButton1()
{
 // TODO: Add your control notification handler code here
    OnOK();          //销毁引导窗口//    销毁原对话框
  CMain dlg;       //进入主窗口    //   Cmain 为响应按键要显示的对话框
   dlg.DoModal();                     //x显示对话框
 
}

 

 

2.对话框最大化

在对话框的初始化函数中加入:  
  BOOL   dlg::OnInitDialog()    
  {  
          //...  
          ShowWindow(SW_SHOWMAXIMIZED);  
          //...  
  }  
  这样就可以实现窗口最大化。

 

也可以这样

   RECT   r;  
 SystemParametersInfo(   SPI_GETWORKAREA,   sizeof(RECT),   &r,   0   );  
 SetWindowPos(NULL,  
  r.left,   r.top,  
  r.right,   r.bottom,  
  SWP_SHOWWINDOW);  

 

3.使对话框上的按键,按照比例扩大

 

void CtestDlg::OnSize(UINT nType, int cx, int cy)
{
CDialog::OnSize(nType, cx, cy);

static RECT LastWindowRect = {0, 0, 0, 0};//用来保存窗口上一次的大小
    CWnd *hWin;//构造一个句柄
    int ux = cx - LastWindowRect.right;
 
 //求出窗口的水平变化量
    int uy = cy - LastWindowRect.bottom;
 
 //求出窗口的竖直变化量
 if((hWin = GetDlgItem(IDOK|IDCANCEL)) != NULL) //IDC_LIST1为控件的ID号
    {
        RECT rect;
        hWin->GetWindowRect(&rect);//获得控件的大小
        ScreenToClient(&rect);//设备到客户
        rect.right += ux;//
        rect.bottom += uy;
        hWin->MoveWindow(&rect);//改变控件大小
    }
    LastWindowRect.right = cx;
    LastWindowRect.bottom = cy;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值