MFC,非模态对话框中[按钮]按下,获取主窗口的RGB,用gerpixel(),请问:HDC dc=::GetDC(??_)怎么取

这个语句对吗?谢谢HDCdc=::GetDC(::GetDesktopWindow());COLORREFMyColor=::GetPixel(dc,30,30);app... 这个语句对吗?谢谢
HDC dc=::GetDC(::GetDesktopWindow());
COLORREF MyColor=::GetPixel(dc,30,30);
app->color[1]= GetRValue(MyColor);
我需要,取主窗口的RGB,不是对话框的,GetDC怎么写??
我用上面语句测试,由于主窗口是视频在播放,用上面代码取RGB值时,屏幕视频闪烁厉害,并且对话框控制窗口中,取不到RGB值。
展开
 我来答
相思丶猫2C
2012-10-27 · TA获得超过1198个赞
知道小有建树答主
回答量:1432
采纳率:50%
帮助的人:948万
展开全部
你描述有问题。你要获取的是桌面的像素。
CWnd* desk = GetDesktopWindow();
CDC* pdc = desk->GetDC();
COLORREF cr = pdc->GetPixel(30,30);
{ ... }
desk->ReleaseDC(pdc); //估计你是忘了这句
追问
周洁伦之谜,你好,我不是取桌面像素。所写程序父窗口就是用来把摄像头的视频采集来,实时显示在父窗口中,然后我想通过程序中一对话框,从这个父窗口视频上不断取一个点的像素值,那这个父窗口的句柄,怎么被对话框捕捉?

我写的语句使屏幕视频显示出闪烁,也不知道是不是取的父窗口像素值,还是对话框的?
谢谢你的回答
追答
不太明白你说的:父窗口播放视频,弹出一个新的对话框,实时显示像素?
那好做,
CWnd* pr= GetParent();
CDC* pdc = pr->GetDC();
COLORREF cr = pdc->GetPixel(30,30);
{ ... }
pr->ReleaseDC(pdc); 。
闪烁可能还有一个原因,这个“实时”?你是怎么做到这个实时的?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式