首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >c++鼠标左键按下帮助

c++鼠标左键按下帮助
EN

Stack Overflow用户
提问于 2010-08-19 23:41:14
回答 4查看 2.2K关注 0票数 1

好了,我知道怎么用鼠标左键按下evet(WM_LBUTTONDOWN)。但是我对它有一些麻烦。当它与矢量一起使用时,似乎每次鼠标左键按下时都会增加101个元素。我认为每次鼠标按键按下时,它都会向WM_LBUTTONDOWN发送101条消息,从而导致添加101个元素。以下是该事件的代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
case WM_LBUTTONDOWN:
    iRegularShots=0;
    pt.x = GET_X_LPARAM(lParam); 
    pt.y = GET_Y_LPARAM(lParam); 
    pRegularShots.push_back(pt); 
    InvalidateRect(hWnd, rect, false); 
    break;

有什么想法吗?

我不会错过一次休息;

我使用size()函数告诉我分配了多少元素。

我设置了两个断点,一个是pRegularShots.push_back(pt);另一个是使用向量内部内容显示图像的不同函数。我在那里接到了101个电话,但在pRegularShots.push_back上只有一个电话。

这是函数代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
VOID fRegularShot(HDC hdc, HWND hWnd) 
{ 
    Graphics graphics(hdc); 
    Image shot(L"RegularShots.png"); 
    long index=0;
    long s=pRegularShots.size();
    while(index < (long)pRegularShots.size()) 
    { 
        graphics.DrawImage(&shot, pRegularShots[index].x, pRegularShots[index].y); 
        ++index;
    } 
} 

windows审核程序

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
switch (message)
    {
    case WM_COMMAND:
        wmId    = LOWORD(wParam);
        wmEvent = HIWORD(wParam);
        // Parse the menu selections:
        switch (wmId)
        {
        case IDM_ABOUT:
            DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About);
            break;
        case IDM_EXIT:
            DestroyWindow(hWnd);
            break;
        default:
            return DefWindowProc(hWnd, message, wParam, lParam);
        }
        break;
    case WM_PAINT:
        hdc = BeginPaint(hWnd, &ps);
        OnPaint(hdc, hWnd, 1);
        if(iRegularShots==0)
        {
            fRegularShot(hdc, hWnd);
        }
        EndPaint(hWnd, &ps);
        break;
    case WM_LBUTTONDOWN:
        iRegularShots=0;
        pt.x = GET_X_LPARAM(lParam); 
        pt.y = GET_Y_LPARAM(lParam); 
        pRegularShots.push_back(pt); 
        InvalidateRect(hWnd, rect, false); 
        return 0;
        break; 
    case WM_LBUTTONUP:
            iRegularShots=1;
            break;
    case WM_DESTROY:
        PostQuitMessage(0);
        break;
    default:
        return DefWindowProc(hWnd, message, wParam, lParam);
    }
    return 0;
}
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-08-20 00:25:30

天哪,是我的错,我把vetor设置为100个元素,对不起

票数 1
EN

Stack Overflow用户

发布于 2010-08-19 23:48:13

没有任何理由可以解释为什么当你按下一次按钮时,你会得到很多WM_LBUTTONDOWN事件。

也许您之前的case部分(处理其他一些消息)缺少break

票数 2
EN

Stack Overflow用户

发布于 2010-08-19 23:49:24

您确定就是这段代码生成了向量中的101个条目吗?前面的case (如果有)不会缺少break;,对吧?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3527141

复制
相关文章
利用api向小程序地图中添加marker
在某些小程序中我们需要将一些地点的位置标记出来。之前我们也发过有关marker添加的文章,今天在此技术的基础上利用api向其中填加maker。
算法与编程之美
2022/05/23
1.1K0
利用api向小程序地图中添加marker
Swift 中的属性包装器
当处理代表某种状态形式的属性时,通常会在每次修改值时触发某种关联的逻辑。例如,我们可以根据一组规则验证每个新值,可以以某种方式转换分配的值,或者每当值更改时都可以通知一组观察者。
韦弦zhy
2021/04/08
2.7K0
安装和配置Drupal 8
Drupal 8是流行的Drupal内容管理系统的最新版本。本指南演示了如何在运行Debian或Ubuntu的Linode上安装Drupal 8。
Techeek
2018/09/18
2.6K0
安装和配置Drupal 8
R语言绘图中添加公式
R语言在作图时难免会用到公式,往途中添加标签公式的方法有很多,R基础包自带的expression函数就是一个,除此之外还有latex2exp可以在R语言中使用latex的命令来给图片添加公式。本文基于expression函数常用的命令从常用的运算符、大型运算、集合运算、希腊字母等方面给出常用的公式命令。
拴小林
2021/10/11
2K0
R语言绘图中添加公式
Python教程:如何向Word中添加表格
Microsoft Word是一种流行的文档处理软件,广泛用于创建各种类型的文档,包括报告、简历、手册等。Python提供了许多库来处理Microsoft Word文档,其中包括python-docx,它使我们能够轻松地创建、修改和操作Word文档。本文将介绍如何使用Python的python-docx库向Word文档中添加表格。
霍格沃兹测试开发Muller老师
2024/04/26
1400
Python教程:如何向Word中添加表格
如何在Debian 8上将ngx_pagespeed添加到Nginx中
ngx_pagespeed简称pagespeed,是一个Nginx模块,旨在通过减少资源的大小以及客户端浏览器加载它所需的时间来自动优化您的网站。如果您还不熟悉它,请查看其官方网站。本教程将指导您完成Nginx的pagespeed模块的安装和配置。重要的是要知道Nginx不支持其他Web服务器(如Apache)中可用的模块的动态加载。由于Nginx不支持此功能,因此您需要从源代码构建Nginx以添加模块。
彼岸轮回
2018/09/19
8900
Python教程:如何向Word中添加表格
Microsoft Word是一种流行的文档处理软件,广泛用于创建各种类型的文档,包括报告、简历、手册等。Python提供了许多库来处理Microsoft Word文档,其中包括python-docx,它使我们能够轻松地创建、修改和操作Word文档。本文将介绍如何使用Python的python-docx库向Word文档中添加表格。
霍格沃兹测试开发Muller老师
2024/03/19
2490
Drupal8的详细建站教程
drupal是一个好用且功能强大的内容管理系统(CMS),通常也被称为是内容管理框架(CMF),由来自全世界各地的开发人员共同开发和维护,目前最新版本是Drupal 8。
全栈程序员站长
2022/09/06
1.4K0
Drupal8的详细建站教程
java如何向数组中添加元素[数组的添加]
大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说java如何向数组中添加元素[数组的添加],希望能够帮助大家进步!!!
Java架构师必看
2022/04/06
7.8K0
Python教程:如何向Word中添加表格
Microsoft Word是一种流行的文档处理软件,广泛用于创建各种类型的文档,包括报告、简历、手册等。Python提供了许多库来处理Microsoft Word文档,其中包括python-docx,它使我们能够轻松地创建、修改和操作Word文档。本文将介绍如何使用Python的python-docx库向Word文档中添加表格。
霍格沃兹测试开发Muller老师
2024/03/18
2110
drupal linux安装,在Debian 10(Buster) Linux服务器中安装drupal 8.8.0的说明
按照本说明,你就可以成功的在Debian 10(Buster) Linux服务器中安装好drupal 8.8.0版本,已亲测能稳定运行。
全栈程序员站长
2022/09/09
1.3K0
drupal linux安装,在Debian 10(Buster) Linux服务器中安装drupal 8.8.0的说明
向 Git 服务器添加 SSH 公钥
在网上很少找到文章有提到如何将自己的 Git 远程仓库配置成可以通过 SSH 公钥方式认证的,而几乎清一色都是告诉你怎么通过 web 界面向 GitHub 添加 SSH 公钥。LZ 在网上查找了一番,终于找到了办法。
全栈程序员站长
2022/07/11
2K0
如何在Debian 8上添加和删除用户
您应该知道如何在新的Linux服务器上执行的最基本任务之一是添加和删除用户。创建新系统时,默认情况下通常只会为您提供root帐户。虽然以root用户身份运行会为您提供强大的功能和灵活性,但它也很危险并且具有破坏性。添加额外的,无特权的用户来执行常见任务几乎总是更好的主意。然后,您应该为系统上可能拥有的任何其他用户创建其他帐户。
水门
2018/09/19
3.3K0
SQL复习之向现有数据库中添加文件组和数据文件
向现有数据库中添加文件组和数据文件,语句如下: use E_market --进入当前操作数据库 alter database E_market add filegroup FG1 --向E_market数据库添加FG1文件组 go --批处理标示   alter database E_market add file --向新建的文件组中添加数据文件 ( name='FG1_E_market_data', filename='e:\project\FG1', size=5MB, filegrowth=
行 者
2018/03/26
4.7K0
SQL复习之向现有数据库中添加文件组和数据文件
在图中添加多边形
在matplotlib中有一个子模块patches, 提供了绘制各种多边形的功能,常用的多边形及其画法如下
生信修炼手册
2020/09/23
6230
在图中添加多边形
winfrom如何在listview中添加控件
private Button btn = new Button(); private void Form1_Load(object sender, EventArgs e) { ListViewItem[] lvs = new ListViewItem[3]; lvs[0] = new ListViewItem(new string[] { "行1列1", "行1列2", "" }); l
码农阿宇
2018/04/18
2.6K0
如何在Hue中添加Spark Notebook
CDH集群中可以使用Hue访问Hive、Impala、HBase、Solr等,在Hue3.8版本后也提供了Notebook组件(支持R、Scala及python语言),但在CDH中Hue默认是没有启用Spark的Notebook,使用Notebook运行Spark代码则依赖Livy服务。在前面Fayson也介绍了《Livy,基于Apache Spark的开源REST服务,加入Cloudera Labs》、《如何编译Livy并在非Kerberos环境的CDH集群中安装》、《如何通过Livy的RESTful API接口向非Kerberos环境的CDH集群提交作业》、《如何在Kerberos环境的CDH集群部署Livy》、《如何通过Livy的RESTful API接口向Kerberos环境的CDH集群提交作业》、《如何打包Livy和Zeppelin的Parcel包》和《如何在CM中使用Parcel包部署Livy及验证》,本篇文章Fayson主要介绍如何在Hue中添加Notebook组件并集成Spark。
Fayson
2018/11/16
6.8K1
如何在 CentOS 8 上添加和删除用户
在配置一台新的Linux 服务器时,第一件事情就是添加或者移除用户。每一个用户都有不同的权限级别,和针对各种命令行,应用程序的指定设置。
雪梦科技
2020/05/09
8.4K0
如何在 CentOS 8 上添加和删除用户
如何在系统中添加字体(添加字体到系统)
笔者最近在使用win10自带的OneNote笔记本记笔记的时候,发现笔者电脑中没有华文新魏这个字体,最开始以为是OneNote不带有这个字体,经过一段时间的收集资料后发现,是笔者电脑win10系统中不带有这个字体,现将有关概念和字体安装方法做一下记录。
全栈程序员站长
2022/08/01
3.9K0
如何在系统中添加字体(添加字体到系统)
【R语言】如何在绘图中显示“≥” 和“≤”
不知道大家在用R绘图的时候,有没有遇到过需要在图中显示大于等于(≥)或者小于等于(≤)符号。小编发现一个很奇怪的现象,在Rstudio里面可以正常显示,但是保存到pdf文件中就变成了=。
生信交流平台
2022/09/21
1.4K0
【R语言】如何在绘图中显示“≥” 和“≤”

相似问题

使用jquery向动态创建的drupal添加div包装器。

10

如何在drupal 8中向drupal-commerce添加自定义结帐窗格

10

无法向Drupal 8安装添加新语言

10

向drupal 8菜单中添加新的文本字段

10

如何在drupal 8的图像周围包装正文

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文