在屏幕中画一个矩形,如果在矩形外单击鼠标左键,把矩形移到单击的位置

作者&投稿:达奚淑 (若有异议请与网页底部的电邮联系)
C# 如何用鼠标在窗体上画一个矩形,并可以用鼠标左键点击在窗体内移动这个矩形~

自己做的,绝对可以用。(拜托给分哦~) Sub form_mousemove(button As Integer, shift As Integer, x As Single, y As Single) Text1.Text = x Text2.Text = y End Sub

SHIFT键
的同时手动鼠标,可以画出正文形。

首先利用MFC AppWizard[exe]向导创建一个单文档应用程序DrawRectangle,然后为视图类CDrawRectangleView添加两个成员变量:
protected:
CPoint topLeft;
CPoint bottomRight;
分别用来表示矩形的左上顶点和右下顶点。
在CDrawRectangleView::CDrawRectangleView()中对它们进行初始化:
topLeft.x = topLeft.y = 150;
bottomRight.x = bottomRight.y = 300;
当然你可以初始化为其他值。
在void CDrawRectangleView::OnDraw(CDC* pDC)中添加下面两行代码:
// TODO: add draw code for native data here
CRect rect(topLeft, bottomRight);
pDC->Rectangle(&rect);
用来在窗口中显示一个矩形。
然后添加消息处理函数WM_LBUTTONDOWN,编写如下代码:
void CDrawRectangleView::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CPoint temp1 = point - topLeft; //当前位置减去矩形左上角坐标
CPoint temp2 = point - bottomRight; //当前位置减去矩形右下角坐标
if (temp1.x < 0 || temp1.y < 0 || temp2.x > 0 || temp2.y > 0) //不在矩形区域内
{
topLeft = point; //矩形左上角为当前鼠标位置
bottomRight += temp1; //矩形右下角加上偏移量
Invalidate(TRUE); //刷新视图
}
CView::OnLButtonDown(nFlags, point);
}
编译、运行程序就行了。
当然你还可以结合一楼的写法,把上面的消息处理函写成下面的形式:
void CDrawRectangleView::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CPoint temp = point - topLeft;
CRect rect(topLeft, bottomRight);
if (!PtInRect(&rect, point))
{
topLeft = point;
bottomRight += temp;
Invalidate(TRUE);
}
CView::OnLButtonDown(nFlags, point);
}

先要设定他的Rect,比如 是 Rect rc1;

那么画出来就是 :
CDC* pDC = GetDC();
pDC->Rectangle( &rc1 );
ReleaseDC( pDC );

在鼠标单击消息中做如下处理:

POINT pt;
GetCursorPos( &pt );
if ( !PtInRect( &rc1, pt ) ) // 不在这个范围
{
// 重新设定rc1;
pDC->Rectangle( &rc1 ); // 重画新的RECT
}


在屏幕中画一个矩形,如果在矩形外单击鼠标左键,把矩形移到单击的...
首先利用MFC AppWizard[exe]向导创建一个单文档应用程序DrawRectangle,然后为视图类CDrawRectangleView添加两个成员变量:protected:CPoint topLeft;CPoint bottomRight;分别用来表示矩形的左上顶点和右下顶点。在CDrawRectangleView::CDrawRectangleView()中对它们进行初始化:topLeft.x = topLeft.y = 150...

用C语言编写程序 在屏幕上画一个矩形
pi = atan(1) * 4;arg = atan(1) \/ 45 * arg;x1[1] = x + r * cos(2 * pi \/ n + arg);y1[1] = y + r * sin(2 * pi \/ n + arg);moveto(x1[1], y1[1]);for (i = 2; i <= n; i++){ x1[i] = x + r * cos(2 * pi * i \/ n + arg);y1[...

MFC 如何指定一个矩形并填充颜色
首先,你需要获取一个CDC对象,这通常是在你的视图类(例如CView或其派生类)的OnDraw或OnPaint处理函数中完成的。CDC对象代表了设备上下文,它是一个封装了GDI(图形设备接口)函数的类,用于在屏幕上绘制图形。cpp void CMyView::OnDraw(CDC* pDC){ CView::OnDraw(pDC);\/\/ 在这里绘制你的矩形 ...

C程序设计 题目 在屏幕上画一个矩形
fputc(fgetc(in),stdout);这个循环的结束条件是 fgetc(in) 返回了结束符,就是结尾多出来的那个字符 所以加上 结束符 EOF 的判断 就可以了 include<stdio.h> include"string.h"include"stdlib.h"void main(){ FILE *in;char ch;char *article;char inFile[30];printf("Please Input The Infile...

CAD中如何画矩形?
1、首先打开CAD软件,点击命令栏中的矩形命令。2、也可以直接输入快捷键REC然后回车。3、鼠标点击屏幕指定矩形的第一个顶点。4、这时可以输入快捷键D,来输入矩形的两条边长。5、输入矩形的一条边长,点击TAB切换输入另一条边长。6、矩形绘制完毕。尺寸与我们输入的一致。

ps正方形怎么画
1.打开photoshop软件,新建一个画布。2.在工具栏中,找到矩形工具并选中。3.按住shift+alt,接着在画布上拖动鼠标即可画出正方形。方法2:选中矩形工具后。2.在画布上单击就会弹出一个创建矩形的对话框。3.输入上宽和高,点击确定。4.确定后正方形就绘制出来了。ps填充快捷键一览:抓手工具【H】。缩...

如何把CAD中的一个矩形居中显示?
1、首先,我们打开一个CAD图形做示例,如图所示,我需要把图中标记部分居中显示。2、如图所示,依次点击“视图”、“缩放”、“窗口”。3、屏幕上出现提示,要求指定对角点,我们只需指定矩形的两个对角点,把需要居中显示的图形范围选中即可。4、第二个对角点指定后,单击一下,该部分图形就被放大居中...

易语言在屏幕中间画一个透明的矩形框?
矩形数据, 矩形数据 窗口1可视 = 假 矩形数据左边 = 左边 矩形数据顶边 = 顶边 矩形数据右边 = 左边 + 宽度 矩形数据底边 = 顶边 + 高度 延迟 (500)底图 = 截取屏幕区域 (矩形数据, #接口常量到字节集, )可视 = 真 子程序 _窗口1_创建完毕 边框 = 0 随意移动 = 真 ...

CAD怎么画一个斜的矩形
1、在命令栏中输入圆弧命令的快件方式“REC”,按一下空格键,这时在命令行中提示我们指定第一个角点(即顶点)或其他的操作 2、我们在屏幕上任意位置点一下鼠标左键,完成第一个顶点的指定 3、如果我们需要画一个已知长宽的矩形,则在指定第一个角点之后,在命令行中输入一个特定值(比如200,即...

用C语言设计 在屏幕上划定一个矩形区域,用键盘方向键控制一个方块移动的...
这个问题有点不好回答,因为这个要看你是否有DX或者是OpenGL的库。如果有的话,一个库函数就可以实现划矩形了。再一个库函数就可以控制矩形移动了。如果你没有那些库的话,应该起来就比较有难度了。

市辖区17571575206: 在屏幕中画一个矩形,如果在矩形外单击鼠标左键,把矩形移到单击的位置 -
郜宣长天: 首先利用MFC AppWizard[exe]向导创建一个单文档应用程序DrawRectangle,然后为视图类CDrawRectangleView添加两个成员变量: protected:CPoint topLeft;CPoint bottomRight; 分别用来表示矩形的左上顶点和右下顶点. 在...

市辖区17571575206: cad中画有宽度为5的矩形 -
郜宣长天: 1.如果你说的是矩形本身的宽度,如画一个长10宽5的矩形,则:输入REC,确定后,左键在屏幕上任意点取一点,输入@10,5,回车即可!2.如果你说的是矩形的线宽,则:输入REC——W——5,回车后画出的矩形的线宽则为5.

市辖区17571575206: C程序设计 题目 在屏幕上画一个矩形 -
郜宣长天: while(!feof(in))fputc(fgetc(in),stdout); 这个循环的结束条件是 fgetc(in) 返回了结束符,就是结尾多出来的那个字符 所以加上 结束符 EOF 的判断 就可以了#include<stdio.h>#include"string.h"#include"stdlib.h" void main() { FILE *in; char ch;...

市辖区17571575206: 题目:在屏幕上画一个矩形要求:每按一次键盘,该矩形转动45度.矩形的大小和转动的方向有键盘输入,并将 -
郜宣长天: TurboC 旋转矩形,任意键 旋转 45度,ESC退出#include <math.h>#include <stdio.h>#include <stdlib.h>#include <graphics.h> void polygon(int n, int x, int y, int r, int color, float arg, int fillstyle); int main() { int GraphDriver; int GraphMode; float arg = ...

市辖区17571575206: c# 如何实现在屏幕上画矩形 -
郜宣长天: 你指的是这个意思吧,在相同的位置再画一次可以把它擦出private void button1_Click(object sender, EventArgs e){ControlPaint.DrawReversibleFrame(new Rectangle(100, 100, 300, 300), Color.Transparent, FrameStyle.Thick);}

市辖区17571575206: 在3dmax中创建一个矩形,再用样条线在矩形上画图形,为什么用样条线一画,线直接跑到后面去了? -
郜宣长天: 因为样条线默认是创建于世界坐标的中心的,如果你创建的矩形并不在世界中心,而是靠前了,那么你之后创建的样条线就会出现在矩形的后面. 而且你这个是透视图,一般透视图只是用来观察的,作图都是用其它的视图,例如前视图.

市辖区17571575206: Excel怎么绘制任意矩形? -
郜宣长天: 接下来给大家奉上详细操作步骤: 1、单击“插入”选项卡,在“插图”组中单击“形状”按钮,在弹出的下拉列表中选择“矩形”工具,可以绘制一般的矩形,如果要绘制正方形,可在选择“矩形”工具后执行如下操作. 2、按住【Shift】键,拖动鼠标可画出一个正方形. 3、按住【Ctrl】键,拖动鼠标可画出一个从起点向四周扩张的矩形. 4、同时按住【Shift】键和【Ctrl】键,拖动鼠标可以画出一个从起点向四周扩张的正方形.

市辖区17571575206: coreldraw中如何将矩形框铺满背景 -
郜宣长天: 一、想画一个矩形框和页面一样大,你选中该矩形填上你需要的背景色,在矩形工具上双击鼠标左键,这时想要什么色就选什么色的,在拾色合那边,要渐变的变按F11;如果不要那外边的那个框,就鼠标右键右击拾色合那上头那有个叉叉的就无外框了,也可以按F12外框笔,看那里外框笔大小那有个无的,就选无. 二、如果要插入的是一个位图,就可以把你这个位图置入刚才建的这个和页面一样大的框里,再进入容器中把图放大,比框大一点点,结束编辑后看到的是一个背题铺满矩形框的.

市辖区17571575206: word文档怎样在一个矩形中添加两个小的矩形? -
郜宣长天: 点击工具栏上“绘图”键,在绘图工具栏上点击“矩形”形,一般我会按Esc键去掉画布框,再按着鼠标左键在文档中画出所要的矩形,可以按上面方法再在矩形中画出两个小矩形,也可以按住Ctrl键,点先画的矩形,复制出一个矩形,再调整到适合的大小及位置,接着复制出另一个矩形.当三个矩形画好,并调整好位置后,可以按住Shift键用鼠标点选三个矩形,然后,点鼠标右键-“组合”-“组合”,这样就能将三个矩形组合成一体防止在今后的编辑中散乱.如果要在矩形中添加文字,可以点选矩形,再点鼠标左键点一下,再点鼠标右键-“添加文字”,这样就可以在矩形中输入文字了.

市辖区17571575206: word中怎么画固定大小的矩形 -
郜宣长天: 画一个矩形后,选择此矩形——右键——设置图片格式——大小,取消“锁定图片纵横比”前的勾.设置长和宽的数值即可.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网