为可拖动的窗体创建右下标

来源:互联网 发布:ubuntu搭建java服务器 编辑:程序博客网 时间:2024/06/08 04:51

1.
//表示可改变大小的图标ID
#if 1
#ifndef OBM_SIZE
#define OBM_SIZE 32766
#endif

2.
1)初始化数据
 CStatic  m_wndSizeIcon;   //放图标的静态控件
 //保存图标的bitmap
 CBitmap  m_bmpSizeIcon;
 BITMAP  m_bitmap;

2)在BOOL CTmpDlg::OnInitDialog()中,添加如下代码

 //得到对话框Clinet区域的大小
 CRect rtClient;
 GetClientRect(&rtClient);

 //加载图标
 m_bmpSizeIcon.LoadOEMBitmap(OBM_SIZE);
 m_bmpSizeIcon.GetBitmap(&m_bitmap);

 //创建显示图标的(静态控件)并放在对话框右下角
 m_wndSizeIcon.Create(NULL, WS_CHILD | WS_VISIBLE | SS_BITMAP,
                 CRect(0, 0, m_bitmap.bmWidth, m_bitmap.bmHeight), this, 0);
 m_wndSizeIcon.SetBitmap(m_bmpSizeIcon);
        //坐标
 m_wndSizeIcon.MoveWindow(rtClient.Width() - m_bitmap.bmWidth, rtClient.Height() - m_bitmap.bmHeight,
   m_bitmap.bmWidth, m_bitmap.bmHeight);  //宽、高

3.
void CTmpDlg::OnSize(UINT nType, int cx, int cy)
{
 CDialog::OnSize(nType, cx, cy);
 if(IsWindow(m_wndSizeIcon.GetSafeHwnd())) //得到窗体的指针,然后判断是否存在
 {
  CRect rtClient;
  GetClientRect(&rtClient);
  m_wndSizeIcon.MoveWindow(cx - m_bitmap.bmWidth, cy - m_bitmap.bmHeight,
   m_bitmap.bmWidth, m_bitmap.bmHeight); 
 }

}

原创粉丝点击