关于GetPixel的问题 COLORREF cr = ::GetPixel(hDC, Point.x, Point.y)如果鼠标所在位置有子窗口,是否用父窗口的DC去取颜色,返回的都是白色,就是窗口的背景色?要是换成子窗口的DC去取,能正常取到颜色。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可以 GetDC(NULL) 用屏幕的DC来获取某个位置的点的像素下面是使用对话框, 上面放了一个静态控件IDC_STATIC1,使用定时器取的代码void CDlg6Dlg::OnTimer(UINT nIDEvent) { // TODO: Add your message handler code here and/or call default if(nIDEvent == 1) { POINT ptCurs = {-1,-1}; COLORREF cf = (COLORREF)(-1); //获取屏幕上的点的颜色 HDC hScreenDC = ::GetDC(NULL); if(hScreenDC) { if(GetCursorPos(&ptCurs)) { cf = GetPixel(hScreenDC, ptCurs.x, ptCurs.y); } ::ReleaseDC(NULL, hScreenDC); } CWnd *pCtrl = GetDlgItem(IDC_STATIC1); if(pCtrl) { CRect rcRect; pCtrl->GetClientRect(&rcRect); CDC *pDstDC = pCtrl->GetDC(); pDstDC->FillSolidRect(&rcRect, 0); //填充黑色 rcRect.DeflateRect(3,3); pDstDC->FillSolidRect(&rcRect, RGB(255, 255, 255)); //填充白色 rcRect.DeflateRect(3,3); pDstDC->FillSolidRect(&rcRect, cf); //填充获取的颜色 pCtrl->ReleaseDC(pDstDC); } } CDialog::OnTimer(nIDEvent);} 试试PrintWindow 数据更新显示的问题 什么时候进入callback函数执行他的代码? VC问题,请教高手(分数相赠) CopyFile的用法 利用MSCOMM实现串口通信问题 我想使用mscomm控件来串口通讯,他要求发地址时校验位为1,发数据时校验位为0,这个不是我规定的,而是一个设备上的通讯协议,不能改的。我 winsock初学者的问题,急!! 来这里向各位高手求教。,24小时心电数据存储 用StretchBlt贴图失真问题 求:获取机器唯一特征码的方法,谢谢 基于CSpliterWnd分割窗口问题 从图像上提取明亮细线
下面是使用对话框, 上面放了一个静态控件IDC_STATIC1,使用定时器取的代码
void CDlg6Dlg::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
if(nIDEvent == 1)
{
POINT ptCurs = {-1,-1};
COLORREF cf = (COLORREF)(-1);
//获取屏幕上的点的颜色
HDC hScreenDC = ::GetDC(NULL);
if(hScreenDC)
{
if(GetCursorPos(&ptCurs))
{
cf = GetPixel(hScreenDC, ptCurs.x, ptCurs.y);
}
::ReleaseDC(NULL, hScreenDC);
}
CWnd *pCtrl = GetDlgItem(IDC_STATIC1);
if(pCtrl)
{
CRect rcRect;
pCtrl->GetClientRect(&rcRect);
CDC *pDstDC = pCtrl->GetDC();
pDstDC->FillSolidRect(&rcRect, 0); //填充黑色
rcRect.DeflateRect(3,3);
pDstDC->FillSolidRect(&rcRect, RGB(255, 255, 255)); //填充白色
rcRect.DeflateRect(3,3);
pDstDC->FillSolidRect(&rcRect, cf); //填充获取的颜色
pCtrl->ReleaseDC(pDstDC);
}
}
CDialog::OnTimer(nIDEvent);
}