函数功能:该函数检索指定坐标点的像素的RGB颜色值。
函数原型:COLORREF GetPixel(HDC hdc, int nXPos, int nYPos)
参数
hdc:设备环境句柄。
nXPos:指定要检查的像素点的逻辑X轴坐标。
nYPos:指定要检查的像素点的逻辑Y轴坐标。
返回值:返回值是该象像点的RGB值。如果指定的像素点在当前剪辑区之外;那么返回值是CLR_INVALID。
GetCursorPos函数可以得到当前鼠标的坐标点。
函数功能:该函数检取光标的位置,以屏幕坐标表示。
函数原型:BOOL GetCursorPos(LPPOINT lpPoint)。
参数
IpPoint:POINT结构指针,该结构接收光标的屏幕坐标。
可以改变自已程序的界面,将每个控件的位置都计算出来
看下面这个例子,在窗口大小改变时,窗口里的控件也跟着调整位置
void CEmail::OnSize(UINT nType, int cx, int cy)
{
CFormView::OnSize(nType, cx, cy);
// TODO: Add your message handler code here
if(nType==SIZE_RESTORED && cx>=522 && cy>=386)
{
CWnd pwnd;
CRect rect;
pwnd=(CWnd )GetDlgItem(IDC_COMBO_CATALOG);
if(pwnd==NULL)return;
pwnd->GetWindowRect(&rect);
ScreenToClient(&rect);
rectright=cx-15;
rectleft=rectright - 90;
pwnd->MoveWindow(&rect,TRUE);
pwnd=(CWnd )GetDlgItem(IDC_LIST);
if(pwnd==NULL)return;
pwnd->GetWindowRect(&rect);
ScreenToClient(&rect);
rectright=cx-10;
rectbottom=recttop+cy/3+20;
pwnd->MoveWindow(&rect,TRUE);
((CListCtrl )pwnd)->SetColumnWidth(1, rectWidth()-274);
pwnd=(CWnd )GetDlgItem(IDC_RICHEDIT);
if(pwnd==NULL)return;
recttop=rectbottom+5;
rectbottom=cy-10;
pwnd->MoveWindow(&rect,TRUE);
}
}
显示器的物理分辨率,液晶的都是固定的,CRT的可以调整。
显卡与显示器的匹配,是 *** 作系统中的显示设置自动侦测的,你也可以个性化自己的显示设置,根据自己宣视器的尺寸大小更改分辨率。
在某一种分辨率下窗口窗口的长宽比例应该是知道的。比如在1024768分辨率下,窗口的宽高如果是ab,则窗口宽高(用x,y表示)与分辨率的关系应该是:x=::GetSystemMetricsSM_CXSCREEN)a/1024,y=::GetSystemMetrics(SM_CYSCREEN)b/768,至于窗口的位置,其实也就是一个数学计算问题。计算的窗口的初始位置后,根据新的位置和长宽定义一个并初始化一个CRect变量,调用MoveWindow函数进行调整窗口即可。
使用Win32 API实现
1在创建窗口时全屏
hWnd = CreateWindow( TEXT ("Class"),TEXT ("Title"), WS_POPUP,0,0,GetSystemMetrics(SM_CXSCREEN),GetSystemMetrics(SM_CYSCREEN),NULL,NULL,hInstance,NULL);
2在事件回调中全屏
SetWindowPos( hWnd, HWND_TOPMOST, 0, 0, GetSystemMetrics(SM_CXSCREEN),GetSystemMetrics(SM_CYSCREEN), SWP_SHOWWINDOW);
以上就是关于VC++如何获取当前坐标点的像素值全部的内容,包括:VC++如何获取当前坐标点的像素值、如何让vc程序自动适应屏幕分辨率大小、如何获取物理分辨率等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)