文号
t18117
阅读
10919
回复
24
收藏
4
(CPP)奇怪的问题
2009/07/31
IP:浙江
某控制台应用程序有如下函数:

void abcdefg(){
    HDC hDC = ::GetDC(NULL);
    int clr = ::GetPixel(hDC, 400, 300);
    if(clr==11054548|10725068|10725577|9344184|7767202){
        keybd_event (VK_LWIN, MapVirtualKey(VK_LWIN, 0), 0, 0);
        keybd_event (VK_LWIN, MapVirtualKey(VK_LWIN, 0), KEYEVENTF_KEYUP, 0);
    }
    else{
        return ;
    }
}
可不管屏幕上那个点颜色如何,都会执行
keybd_event (VK_LWIN, MapVirtualKey(VK_LWIN, 0), 0, 0);
        keybd_event (VK_LWIN, MapVirtualKey(VK_LWIN, 0), KEYEVENTF_KEYUP, 0);
很奇怪…………
17年6个月前IP:未同步
134308
1楼
排错提示:
先
printf("%d",clr);
看看数值有无变化 没有就**去吧
引用
评论
17年6个月前IP:未同步
134311
2楼
还有,写11054548|10725068|10725577|9344184|7767202干啥,直接写16760831不就完了 = =
引用
评论
phpskycn作者
17年6个月前IP:未同步
134312
3楼
引用第1楼破93于2009-07-31 18:14发表的  :
排错提示:
先
printf("%d",clr);
看看数值有无变化 没有就**去吧

额,控制台程序不能这样的吧
用AfxMessageBox(clr);每次都报错(编译通过,运行时报错)
引用
评论
phpskycn作者
17年6个月前IP:未同步
134314
4楼
引用第2楼破93于2009-07-31 18:16发表的  :
还有,写11054548|10725068|10725577|9344184|7767202干啥,直接写16760831不就完了 = =

…………
当某点是上面这几种颜色中的一种时
做某事
引用
评论
17年6个月前IP:未同步
134317
5楼
引用第3楼phpskycn于2009-07-31 18:17发表的  :

额,控制台程序不能这样的吧
用AfxMessageBox(clr);每次都报错(编译通过,运行时报错)


控制台才能这样!!!

还有

引用第4楼phpskycn于2009-07-31 18:18发表的  :

…………
当某点是上面这几种颜色中的一种时
做某事



我靠 ……给我看cpp入门去……

这么写……我靠我日飞我pia飞我日爆我pia烂

环球日爆啊……这种错误我靠我********************************************************************************************

下面给出正确示例

if((clr==11054548)||(clr==10725068)||(clr==10725577)||(clr==9344184)||(clr==7767202)){
引用
评论
phpskycn作者
17年6个月前IP:未同步
134319
6楼
如93所述……
加了
printf("%d",clr);
system("[s:9]AUSE");
还#include   <cstdlib>
之后
显示0
难道我得到的DC只是那个窗口所在的一块?
引用
评论
17年6个月前IP:未同步
134320
7楼
汗一个, "=="的操作级比"|"高,多用括号啊
引用
评论
17年6个月前IP:未同步
134321
8楼
五雷轰顶啊啊啊啊啊
啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊
||与|是不同的!!!

void __fastcall TForm2::FormCreate(TObject *Sender)
{
    int a;
    a=11054548|10725068|10725577|9344184|7767202;
    ShowMessage(IntToStr(a));
}

自己看 ……
引用
评论
phpskycn作者
17年6个月前IP:未同步
134323
9楼
引用第5楼破93于2009-07-31 18:22发表的  :



我靠 ……给我看cpp入门去……

.......

没用,还是0
引用
评论
17年6个月前IP:未同步
134325
10楼
此贴让我大开眼界……

如果getpixel是0,请检查句柄……
引用
评论
17年6个月前IP:未同步
134328
11楼
| 和 || 的优先级都没有 == 高,所以你是先让 clr和第一个数 ==, 然后才后面的比较
+26
科创币
phpskycn
2009/07/31
93KCB太多了,不给加
引用
评论
phpskycn作者
17年6个月前IP:未同步
134327
12楼
主要矛盾在于GetPixel()得到的是0
!!!
PS:0是黑色还是白色?
引用
评论
17年6个月前IP:未同步
134329
13楼
引用第9楼phpskycn于2009-07-31 18:25发表的  :

没用,还是0

如果if(clr==11054548|10725068|10725577|9344184|7767202){是0
if((clr==11054548)||(clr==10725068)||(clr==10725577)||(clr==9344184)||(clr==7767202)){又怎么不会是0呢?

"=="又不是赋值……我只是指出您的语法问题 = =
引用
评论
17年6个月前IP:未同步
134330
14楼
引用第11楼phpskycn于2009-07-31 18:30发表的  :
主要矛盾在于GetPixel()得到的是0
!!!
PS:0是黑色还是白色?

喷血

color值中,白色=16777215,黑色=0

然后,请检查句柄……我不清楚getpixel获取一个不存在的句柄时返回的是什么

另外……我习惯读入bitmap然后用指针直接访问,CPP的指针那么好用
引用
评论
phpskycn作者
17年6个月前IP:未同步
134332
15楼
难道……是因为控制台程序弹出来的窗口底色?
……
引用
评论
phpskycn作者
17年6个月前IP:未同步
134335
16楼
算了,去CSDN逛
刚看到好东西…………可惜是VB的
继续看源码
谢谢各位了
引用
评论
17年6个月前IP:未同步
134336
17楼
引用第15楼phpskycn于2009-07-31 18:32发表的  :
难道……是因为控制台程序弹出来的窗口底色?
……

<c++ primer>欢迎您 虽然您可能看不懂  = =
引用
评论
phpskycn作者
17年6个月前IP:未同步
134337
18楼
引用第17楼破93于2009-07-31 18:34发表的  :

<c++ primer>欢迎您 虽然您可能看不懂  = =

七院欢迎您
引用
评论
17年6个月前IP:未同步
134338
19楼
噗  去CSDN小心被喷
另外GetDC(NULL)干啥?获得是显示器的设备上下文 您要干啥?
引用
评论
17年6个月前IP:未同步
134339
20楼
引用第18楼phpskycn于2009-07-31 18:35发表的  :

七院欢迎您

我一般去三院
引用
评论
17年6个月前IP:未同步
134340
21楼
有点想呕
phpskycn的帖子第一眼看过去几乎雷翻,这就如同在VB里写:

if clr = 11054548 or 10725068 or 10725577 or 9344184 or 7767202
结果不得而知
引用
评论
phpskycn作者
17年6个月前IP:未同步
134341
22楼
引用第19楼破93于2009-07-31 18:37发表的  :
噗  去CSDN小心被喷
另外GetDC(NULL)干啥?获得是显示器的设备上下文 您要干啥?

您也不咋的……
不GetDC(NULL);,怎么GetPixel?
引用
评论
17年6个月前IP:未同步
134348
23楼
LS居然敢说这种话,太雷人了 555555555 获取设备上下文到底要识别个啥 = = ?
引用
评论
17年6个月前IP:未同步
134353
24楼
引用第22楼phpskycn于2009-07-31 18:40发表的  :

您也不咋的……
不GetDC(NULL);,怎么GetPixel?

确实不咋地
我进CSDN的时候不小心回答了几个问题,亮了下验证码识别,结果我生日的时候去散分,被别人说装纯,啊唔 我明明是16岁 怎么就没人信呢
引用
评论
笔记
{{note.content}}
{{n.user.username}}
{{fromNow(n.toc)}} {{n.status === noteStatus.disabled ? "已屏蔽" : ""}} {{n.status === noteStatus.unknown ? "正在审核" : ""}} {{n.status === noteStatus.deleted ? '已删除' : ''}}
  • 编辑
  • 删除
  • {{n.status === 'disabled' ? "解除屏蔽" : "屏蔽" }}
我也是有底线的