欢迎来到天天文库
浏览记录
ID:10801415
大小:56.50 KB
页数:3页
时间:2018-07-08
《用vc++6.0为对话框添加最小化按钮和提示条论文》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、用VC++6.0为对话框添加最小化按钮和提示条论文摘要本文通过实例介绍了用VC++6.0为对话框添加最小化按钮和提示条的方法和原理关键词对话框最小化按钮提示条我们在使用对话框窗体时,会有这样一种感受:当对话框窗体位于其它程序窗口界面上时,单击对话框外区域时,可使对话框窗体最小化;而当对话框窗体位于桌面上时,无论怎样单击对话框外区域,对话框均不能最小化,只能选择关闭。但有时我们在使用对话框时,还希望能根据需要使对话框具有最小化功能。本文的设计思想就是据此提出来的。1实例程序设计要点⑴取得对话框标题栏位置和
2、大小.freelap*pBitmap),将位图选入内存设备环境中;④调用函数BitBlt(intx,inty,intnFC中提供了工具提示条控件类CToolTipCtrl,由它来管理提示条。在这里,我们从CToolTipCtrl类派生子类CToolTips。在子类的定义中添加函数BOOLAddToolTip(UINTnID,LPRECTlpRect,LPCTSTRlpszText),该函数用于向工具提示条控件注册按钮区域和提示文本,当鼠标在最小化按钮区域时,显示提示文本。3主要的程序代码⑴在对话框类中定
3、义相应的变量和函数声明classCMinButtonDlg:publicCDialog{…………public:CRectm_rtButtMin;//记录最小化按钮位置voidDra_BMPPressed;//最小化按钮状态标志CRectm_ButtMinTips;//记录最小化按钮区域protected:CToolTipsm_ToolTip;//定义工具提示条控件变量voidGetMinButRect();//获取最小化按钮所在区域//消息处理函数afx_msgvoidOnNcLButtonDosgvo
4、idOnNcPaint();afx_msgvoidOnActivate(UINTnState,Cinimized);afx_msgvoidOnNcMouseMove(UINTnHitTest,CPointpoint);…………};⑵对话框类中三个消息处理函数定义如下://对应消息_NCPAINT的消息处理函数voidCMinButtonDlg::OnNcPaint(){CDialog::OnNcPaint();Draized){CDialog::OnActivate(nState,pinimized);
5、DraDC=neap*pBitmap1=neap;CBitmap*pBitmap2=neap;CBitmap*pOldBitmap;CRectrtemDC-CreatepatibleDC(pDC);if(!pDC)return;Getetrics(SM_CXFRAME);rtTitle.top=GetSystemMetrics(SM_CYFRAME);rtTitle.right=rtetrics(SM_CXFRAME);rtTitle.bottom=rtTitle.top+GetSystemMetric
6、s(SM_CYSIZE);//计算最小化按钮的位置,位图大小为15X15rtButtons.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(I
7、DB_BITMAP2);//调入按钮按下状态的位图m_rtButtMin.OffsetRect(rtPPressed为TRUE//调入正常状态按钮的位图pOldBitmap=pMemDC-SelectObject(m_BMPPressed?pBitmap1:pBitmap2);//将按钮位图复制到实际的内存设备环境中pDC-BitBlt(rtButtons.left,rtButtons.top,rtButtons.emDC,0,0,SRCCOPY);pMemDC-SelectObject(pOldBit
8、map);//恢复原来的内存设备环境//释放资源ReleaseDC(pMemDC);ReleaseDC(pDC);deletepMemDC;deletepBitmap1;deletepBitmap2;}⑷对应鼠标左键的_NCLBUTTONDOinButtonDlg::OnNcLButtonDo_rtButtMin.PtInRect(point)){m_BMPPressed=FALSE;//绘制按钮按下时的状态Dra_BMPPressed=T
此文档下载收益归作者所有