设为首页 加入收藏

TOP

VC界面开发(一)
2013-05-03 18:11:08 来源: 作者: 【 】 浏览:104
Tags:界面 开发

  1.让控件随着窗口的大小变化而变化

  重载OnSize函数:

  [cpp]

  // TODO: 在此处添加消息处理程序代码

  if(nType==SIZE_RESTORED || nType==SIZE_MAXIMIZED) //窗体大小发生变动。处理函数resize

  {

  float fsp ; //用于分别记录窗口发生变化的长宽新旧比

  POINT Newp; //获取现在对话框的大小

  CRect recta;

  GetClientRect(&recta);     //取客户区大小

  Newp.x=recta.right-recta.left;

  Newp.y=recta.bottom-recta.top;

  fsp[0]=(float)Newp.x/oldPoint.x;  //计算长度的新旧比

  fsp =(float)Newp.y/oldPoint.y;  //计算高度的新旧比

  CRect Rect;

  int woc;

  CPoint OldTLPoint,TLPoint; //左上角

  CPoint OldBRPoint,BRPoint; //右下角

  HWND  hwndChild=::GetWindow(m_hWnd,GW_CHILD);  //取得第一个控件的句柄,用于遍历所有控件

  while(hwndChild)

  {

  woc=::GetDlgCtrlID(hwndChild);//取得ID

  GetDlgItem(woc)->GetWindowRect(Rect); //获得相对于屏幕左上角的坐标

  ScreenToClient(Rect); //将屏幕坐标转换成相对客户窗口左上角的坐标

  OldTLPoint = Rect.TopLeft();

  TLPoint.x = long(OldTLPoint.x*fsp[0]); //用比例得出左上角的x坐标

  TLPoint.y = long(OldTLPoint.y*fsp ); //用比例得出左上角的y坐标

  OldBRPoint = Rect.BottomRight();

  BRPoint.x = long(OldBRPoint.x *fsp[0]); //用比例得出右下角的x坐标

  BRPoint.y = long(OldBRPoint.y *fsp ); //用比例得出右下角的y坐标

  Rect.SetRect(TLPoint,BRPoint); //设置最新的Rect

  GetDlgItem(woc)->MoveWindow(Rect,TRUE);

  hwndChild=::GetWindow(hwndChild, GW_HWNDNEXT);  //获得下一个控件的句柄

  }

  oldPoint=Newp;

  }

  2.为Static控件加载图片

  [cpp]

  CBitmap bm1;

  bm1.LoadBitmap(IDB_BACKGROUND);

  BITMAP structBm1;

  bm1.GetBitmap(&structBm1);

  HBITMAP   hBitmap=::LoadBitmap(AfxGetApp()-> m_hInstance,MAKEINTRESOURCE(IDB_BACKGROUND));

   

首页 上一页 1 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇VC++网络编程-文件传输 下一篇VC中IDE的一些使用小技巧

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: