在线客服系统

用VC++6.0为对话框添加最小化按钮和提示条(2)

时间:2015-08-25 09:31 来源:发表吧 作者:发表吧编辑 点击:
  //创建一个内存设备环境
  pMemDC->CreateCompatibleDC(pDC);
  if(!pDC)return;
  GetWindowRect(&rtWnd);
  //取得标题栏的矩形
  rtTitle.left=GetSystemMetrics(SM_CXFRAME);
  rtTitle.top=GetSystemMetrics(SM_CYFRAME);
  rtTitle.right=rtWnd.right-rtWnd.left-GetSystemMetrics(SM_CXFRAME);
  rtTitle.bottom=rtTitle.top+GetSystemMetrics(SM_CYSIZE);
  //计算最小化按钮的位置,位图大小为15X15
  rtButtons.top=rtTitle.top+1;
  rtButtons.bottom=rtButtons.top+15;
  rtButtons.right=rtTitle.right-20;
  rtButtons.left=rtButtons.right-15;
  m_rtButtMin=rtButtons;
  pBitmap1->LoadBitmap(IDB_BITMAP1);//调入正常状态按钮的位图
  pBitmap2->LoadBitmap(IDB_BITMAP2);//调入按钮按下状态的位图
  m_rtButtMin.OffsetRect(rtWnd.TopLeft());//记录最小化按钮的位置
  //将按钮位图调入内存设备环境中,m_BMPPressed为TRUE
  //调入正常状态按钮的位图
  pOldBitmap=pMemDC->SelectObject(m_BMPPressed?pBitmap1:pBitmap2);
  //将按钮位图复制到实际的内存设备环境中
  pDC->BitBlt(rtButtons.left,rtButtons.top,rtButtons.Width(),
  rtButtons.Height(),pMemDC,0,0,SRCCOPY);
  pMemDC->SelectObject(pOldBitmap);//恢复原来的内存设备环境
  //释放资源
  ReleaseDC(pMemDC);
  ReleaseDC(pDC);
  deletepMemDC;
  deletepBitmap1;
  deletepBitmap2;
  }
  ⑷对应鼠标左键的WM_NCLBUTTONDOWN消息处理函数
  voidCMinButtonDlg::OnNcLButtonDown(UINTnHitTest,CPointpoint)
  {
  CDialog::OnNcLButtonDown(nHitTest,point);
  //检测是否在最小化按钮区域内按下按钮
  if(m_rtButtMin.PtInRect(point))
  {
  m_BMPPressed=FALSE;//绘制按钮按下时的状态
  DrawButton();//绘制最小化按钮
  m_BMPPressed=TRUE;//绘制按钮的正常状态
  SendMessage(WM_SYSCOMMAND,SC_MINIMIZE,MAKELPARAM(point.x,point.y));//发送最小化消息
  }
  }
  ⑸//在最小化按钮区域实现提示文本
  BOOLCToolTips::AddToolTip(UINTnID,LPRECTlpRect,LPCTSTRlpszText)
  {
  TOOLINFOTips;
  memset(&Tips,0,sizeof(TOOLINFO));
  Tips.cbSize=sizeof(TOOLINFO);
  Tips.hwnd=GetOwner()->GetSafeHwnd();
  Tips.uFlags=TTF_SUBCLASS;
  Tips.uId=nID;
  memcpy(&Tips.rect,lpRect,sizeof(RECT));
  Tips.lpszText=(LPSTR)lpszText
  return(BOOL)SendMessage(TTM_ADDTOOL,0,(LPARAM)&Tips);
  }
  ⑹在对话框初始化函数OnInitDialog()中添下列代码:
  m_ToolTip.Create(this,TTS_ALWAYSTIP);//创建工具提示控件,TTS_ALWAYSTIP表示,//不论控件所属窗体是否活动,提示条始终有效
  GetMinButRect();
  ScreenToClient(&m_ButtMinTips);//屏幕坐标转换为窗体坐标
  m_ToolTip.AddToolTip(1,&m_ButtMinTips,"最小化");
  4结束语
  实例程序的测试环境为Windows98、PⅡ350,效果良好。

www.fabiaoba.com),是一个专门从事期刊推广期刊发表、投稿辅导、发表期刊的网站。
  本站提供如何投稿辅导、发表期刊,寻求论文刊登合作,快速投稿辅导,投稿辅导格式指导等解决方案:省级论文刊登/国家级论文刊登/ CSSCI核心/医学投稿辅导/职称投稿辅导。

投稿邮箱:fabiaoba365@126.com
 在线咨询: 投稿辅导275774677投稿辅导1003180928
 在线咨询: 投稿辅导610071587投稿辅导1003160816
 联系电话:13775259981

其它期刊

联系方式
李老师QQ:发表吧客服610071587 陈老师QQ:发表吧客服275774677 刘老师QQ:发表吧客服1003160816 张老师QQ:发表吧客服1003180928 联系电话:18796993035 投稿邮箱:fabiaoba365@126.com
期刊鉴别
热门期刊
发表吧友情提醒

近来发现有些作者论文投稿存在大量剽窃、抄袭行为,“发表吧”对此类存在大量剽窃、抄袭的论文已经停止编辑、推荐。同时我们也提醒您,当您向“发表吧”投稿时请您一定要保证论文的原创性、唯一性,这既是对您自己负责,更是对他人的尊敬。

此类投稿的论文如果发表之后,对您今后的人生和事业将造成很大的麻烦,后果不堪设想,请您一定要慎重,三思而后行。

如因版权问题引起争议或任何其他原因,“发表吧”不承担任何法律责任,侵权法律责任概由剽窃、抄袭者本人承担。

 
QQ在线咨询
陈老师:275774677
张老师:1003180928
李老师:610071587
刘老师:1003160816
论文刊登热线:
137-7525-9981
微信号咨询:
fabiaoba-com

友情链接

申请链接