画矩形其实无非就是在鼠标移动的时候,不断地画出矩形和擦除已经画的矩形
void ModelAcquire::OnMouseMove(UINT nFlags,CPoint point)
{
//TODO: 在此添加消息处理程序代码和/或调用默认值
pdc= GetDC();
pen= new CPen(PS_SOLID, 1, RGB(255, 0, 0)); //创建画笔
DeleteObject(pdc->SelectObject(pen));//把创建的画笔选进设备描述表
if(isLButton== TRUE && CursorIsInControl(point, IDC_MODEL_ALL) == TRUE
&&isRestButton == TRUE)//按下左键并且在控件区域内
{
HCURSORhCur = LoadCursor( NULL, IDC_CROSS);
::SetCursor(hCur);
DrawRect(pdc, point);
}
else{
HCURSORhCur = LoadCursor( NULL, IDC_ARROW) ;
::SetCursor(hCur);
}
//在display图片控制区域按下了左键
if(isLButtonInDisplayPicCtl == TRUE && CursorIsInControl(point,IDC_MODEL_DISPLAY) == TRUE) {
HCURSORhCur = LoadCursor( NULL, IDC_CROSS);
::SetCursor(hCur);
DrawFixRect(pdc,point);
}
CDialogEx::OnMouseMove(nFlags,point);
}
void ModelAcquire::OnLButtonUp(UINT nFlags,CPoint point)
{
//TODO: 在此添加消息处理程序代码和/或调用默认值
if(isLButton == TRUE) {
isLButton= FALSE;
m_oldPoint.x= 0;
m_oldPoint.y= 0;
isRestButton= FALSE;
CBrush*pBrushOld = (CBrush*)pdc->SelectStockObject(NULL_BRUSH);
pdc->Rectangle(m_allRect );
pdc->SelectObject(pBrushOld);
}
if(isLButtonInDisplayPicCtl == TRUE && CommonFunc::RectInRect(m_disRect,m_disPicCtlRect) == TRUE) {
isLButtonInDisplayPicCtl= FALSE;
CBrush*pBrushOld = (CBrush*)pdc->SelectStockObject(NULL_BRUSH);
pdc->Rectangle(m_disRect );
pdc->SelectObject(pBrushOld);
//擦除矩形框
Invalidate();//重绘,在OnPaint函数中画出
isLButtonUp= TRUE;
}
CDialogEx::OnLButtonUp(nFlags,point);
}
void ModelAcquire::OnLButtonDown(UINTnFlags, CPoint point)
{
//TODO: 在此添加消息处理程序代码和/或调用默认值
if(CursorIsInControl(point,IDC_MODEL_ALL) == TRUE)//鼠标是否在控件范围之内
{
isLButton= TRUE;
m_sPoint= point;
}
if(CursorIsInControl(point,IDC_MODEL_DISPLAY) == TRUE)//鼠标是否在控件范围之内
{
isLButtonInDisplayPicCtl= TRUE;
if(isLButtonUp == TRUE) {
//擦除矩形框
GetCursorPos(&point);
SetCursorPos(point.x- 5, point.y - 5);
m_disRect.SetRectEmpty();
Invalidate();
isLButtonUp= FALSE;
}
}
CDialogEx::OnLButtonDown(nFlags,point);
}
bool ModelAcquire::CursorIsInControl(CPointpoint, UINT ID )
{
ClientToScreen(&point);
CRectrect;
GetDlgItem(ID)->GetClientRect(rect);
GetDlgItem(ID)->ClientToScreen(rect);
if(rect.PtInRect(point))
returnTRUE;
returnFALSE;
}
void ModelAcquire::DrawRect(CDC *pdc,CPoint point)
{
//擦除矩形框
if(m_oldPoint.x != 0 ) {
m_allRect.SetRect(m_sPoint.x,m_sPoint.y, m_oldPoint.x, m_oldPoint.y);
m_allRect.NormalizeRect();
pdc->DrawFocusRect(&m_allRect);
}
//画矩形框
m_allRect.SetRect(m_sPoint.x,m_sPoint.y, point.x, point.y);
m_allRect.NormalizeRect();
pdc->DrawFocusRect(&m_allRect);
m_oldPoint= point;
}
void ModelAcquire::DrawFixRect(CDC *pdc,CPoint point)
{
if(isFirstDrawRect == TRUE) {
//擦除矩形框
m_disRect.NormalizeRect();
pdc->DrawFocusRect(&m_disRect);
}
//画矩形框
m_disRect.SetRect(point.x- FixWidth / 2, point.y - FixHeight / 2, point.x + FixWidth / 2, point.y +FixHeight / 2);
if(CommonFunc::RectInRect(m_disRect, m_disPicCtlRect) == TRUE) {
m_disRect.NormalizeRect();
pdc->DrawFocusRect(&m_disRect);
isFirstDrawRect= TRUE;
}
else
isFirstDrawRect= FALSE;
}
org.apache.ibatis.exceptions.PersistenceException: ### Error updating database. Cause: org.apache.ibatis.executor.ExecutorException: A query was run and no Result Maps were found for the Mapped State...
一、视图通过之前的笔记,以及参考:应用结构(Application Structure): 视图(Views) - Yii 2.0 权威指南 - 文档 - Yii Framework 中文网3 Yii2.0灵活使用AppAssets管理CSS样式及JS脚本_眼镜君-程序员秘密应用结构(Application Structure): 前端资源(Assets) - Yii 2.0 权威指南 - 文档 - Yii Framework 中文网...
作者:郑佐原文地址:http://blog.csdn.net/zhzuo/archive/2004/04/05/22027.aspx日期:2004-04-05Windows 窗体是用于 Microsoft Windows 应用程序开发的、基于 .NET Framework 的新平台。此框架提供一个有条理的、面向对象的、可扩展的类集,它使您得以开发丰富的 Windows 应用程序。一...
给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中没有重复出现的数字。示例 1:输入: 1->2->3->3->4->4->5输出: 1->2->5示例 2:输入: 1->1->1->2->3输出: 2->3这道题和83题相同之处在于,都是给一个排序链表。要求删除链表中重复的元素;不同之处...
转自 http://www.cnblogs.com/prettymdx/p/5951715.html问题背景:Maven的project下,项目中已经引用了相应的jar包。Java class中没有语法错误,在执行时报ClassNotFound。检查了Maven的pom.xml,依赖引入正常。错误原因:进入到tomcat的部署路径C:\eclipseworksp
题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=954N!时间限制:1000 ms | 内存限制:65535 KB难度:3描述阶乘(Factorial)是一个很有意思的函数,但是不少人都比较怕它。现在这里有一个问题,给定一个N(0输入本题有多组测试数据,每组数
1.js事件<a class="back-top" href="#top" onclick="window.scrollTo(0,0);return false;" title="返回顶部"style="position:fixed;right:0px;">返回顶部</a>也可采用如下写法<a href="javasc
安装nginx提示需要pcre库,需要通过参数--with-pcre来指定,通过rpm -ql命令查看系统已经安装了pcre,如下图所示:在通过configurer配置nginx选项时,指定pcre目录为/usr/share/doc/pcre-8.32,不会出错,但是make时就出现如题所示错误。这个错误的原因是通过--with-pcre需要指定pcre的源码目录,而不是安装目录,下载pc...
1,wcstombssize_t wcstombs (char* dest, const wchar_t* src, size_t max);Convert wide-character string to multibyte stringdestPointer to an array of char elements long enough to contain the res
本文将介绍如何使用secure crt 将本地文件上传至虚拟机或远程linux 服务器(即下文所讲的远程端),这仅是本人平常喜欢使用的一种方式。用secure crt 连接、登录虚拟机鼠标右键,并选中Connect SFTP Tab,如图:切换至SFTP 窗口几个常用命令:lpwd :查看本地当前所在目录 pwd :查看远程端所在目录lls :查看本地当前目录下内容 ...
我是腾讯会员,我一个朋友不是。他想看一个会员电影,我在自己电脑上下载了这个电影。是qlv格式,只支持腾讯视频播放。</br>这时候,他要看有两种方式:<br>一是使用格式工厂等转换工具转换为MP4等常见视频格式,再使用任意支持该视频格式的播放器观看。<br&...
题目戳这里子问题:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;∑i=1nφ(i)~~~~\sum_{i=1}^{n}\varphi(i)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;∑i=1nφ(i)因为&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;∑i∣nφ(i)=n~~~~\sum_{i|n}\