设为首页 加入收藏

TOP

11.5.1 功能控制模块的界面设计及实现(1)
2013-10-07 14:33:39 来源: 作者: 【 】 浏览:67
Tags:11.5.1 功能 控制 模块 界面设计 实现

11.5.1  功能控制模块的界面设计及实现(1)

本工程基于对话框实现,而功能控制模块的界面用的是工程默认的主对话框,因此功能模块的设计也是基于这个对话框。

(1)为对话框拖放3个按钮,布局如图11.20所示。可以看出图11.20中对话框的标题栏被去掉了且没有边框。这需要修改该对话框的属性,属性设置如图11.21所示。

 
图11.20  功能控制模块界面布局
 
图11.21  对话框属性
将对话框的Border选为Thin,并去掉Title barx选项。为了不影响用户对其他程序的操作,将屏幕左下角、任务栏的上方作为对话框初始位置。在对话框的初始化函数中进行设置。
  1. 01  BOOL CScreenShotsDlg::OnInitDialog()  
  2. 02  {  
  3. 03      SetWindowText("截屏工具");                              //窗体名称  
  4. 04      //将窗体显示到屏幕的左下角  
  5. 05      CRect rt;  
  6. 06      SystemParametersInfo(SPI_GETWORKAREA,   0,   &rt,   0) ;  
  7. 07      int tastHeight = GetSystemMetrics(SM_CYSCREEN) - rt.Height();  
  8. 08      m_swRect.left = GetSystemMetrics(SM_CXSCREEN) - 250;  
  9. 09      m_swRect.top = GetSystemMetrics(SM_CYSCREEN) - 35 - tastHeight -5 ;  
  10. 10      m_swRect.right = GetSystemMetrics(SM_CXSCREEN);  
  11. 11      m_swRect.bottom = GetSystemMetrics(SM_CYSCREEN) - tastHeight -5 ;  
  12. 12      SetWindowPos(&wndTopMost,m_swRect.left , m_swRect.top ,  
  13.         m_swRect.Width() ,  
  14. 13                      m_swRect.Height() ,SWP_SHOWWINDOW);  
  15. 14      return TRUE;   
  16. 15  }  

SystemParametersInfo()用于函数查询或设置系统级参数。当第一个参数为SPI_GETWORKAREA时检索主显示器的工作区大小。工作区是指屏幕上不被系统任务条或应用程序桌面工具遮盖的部分。

(2)为功能控制界面设计并载入背景图片IDB_BK,如图11.22所示。

 
图11.22  功能控制模块的背景图片

为对话框类中定义两个变量,一个用于载入位图,一个用于绘制对话框背景。

  1. CBitmap m_bmBack;  
  2. CBrush m_brBack;  

在对话框的初始化函数中载入背景位图,并用这个位图初始化背景刷。
  1. m_bmBack.DeleteObject();  
  2. m_brBack.DeleteObject();  
  3. m_bmBack.LoadBitmap(IDB_BK);  
  4. m_brBack.CreatePatternBrush(&m_bmBack);  

重载对话框的OnCtlColor()函数,实现修改对话框背景图像的功能。
  1. 01  HBRUSH CScreenShotsDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT   
  2.     nCtlColor)   
  3. 02  {  
  4. 03      return m_brBack;            //窗体背景刷  
  5. 03  }  

直接返回用背景图片初始化的背景刷句柄即可。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇1.4.1 工程文件简介 下一篇11.2.2 VC++ 6.0开发DLL实例

评论

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