c++ API 在屏幕上(或窗口中)的(x,y)坐标绘制一个点

请问c++中那个API函数可以在屏幕上(或窗口中)的(x,y)坐标绘制一个点,最好给个例子,3Q!!!

第1个回答  推荐于2016-06-05
C++没有自己定义的画点函数,画点、画线等是属于图象库的内容,跟显示设备,如LCD相关。

下面是调用Windows的API实现画点的。

#include<windows.h>

int main( void )
{
// 获取一个可供画图的DC,我这里就直接用桌面算了
HDC hdc = GetWindowDC( GetDesktopWindow() );

// 创建红色1像素宽度的实线画笔
HPEN hpen1 = CreatePen( PS_SOLID, 1, RGB(255,0,0) );
// 创建绿色5像素宽度的破折画笔,如果你想创建其他种类的画笔请参阅MSDN
HPEN hpen2 = CreatePen( PS_DASH, 5, RGB(0,255,0) );
// 创建一个实体蓝色画刷
HBRUSH hbrush1 = CreateSolidBrush( RGB(0,0,255) );
// 创造一个透明的画刷,如果你想创建其他种类的画刷请参阅MSDN
HBRUSH hbrush2 = (HBRUSH)GetStockObject( NULL_BRUSH );

// 将hpen1和hbrush1选进HDC,并保存HDC原来的画笔和画刷
HPEN hpen_old = (HPEN)SelectObject( hdc, hpen1 );
HBRUSH hbrush_old = (HBRUSH)SelectObject( hdc, hbrush1 );

// 在(40,30)处画一个宽200像素,高50像素的矩形
Rectangle( hdc, 40, 30, 40+200, 30+50 );

// 换hpen1和hbrush1,然后在(40,100)处也画一个矩形,看看有何差别
SelectObject( hdc, hpen2 );
SelectObject( hdc, hbrush2 );
Rectangle( hdc, 40, 100, 40+200, 100+50 );

// 画个椭圆看看
Ellipse( hdc, 40, 200, 40+200, 200+50 );

// 画个(0,600)到(800,0)的直线看看
MoveToEx( hdc, 0, 600, NULL );
LineTo( hdc, 800, 0 );

// 在(700,500)处画个黄点,不过这个点只有一像素大小,你细细的看才能找到
SetPixel( hdc, 700, 500, RGB(255,255,0) );

// 恢复原来的画笔和画刷
SelectObject( hdc, hpen_old );
SelectObject( hdc, hbrush_old );

return 0;
}

参考资料:http://hi.baidu.com/xulei1143/blog/item/064d831bf7d2a6188618bf80.html

本回答被提问者采纳

c++ API 在屏幕上(或窗口中)的(x,y)坐标绘制一个点
C++没有自己定义的画点函数,画点、画线等是属于图象库的内容,跟显示设备,如LCD相关。下面是调用Windows的API实现画点的。include<windows.h> int main( void ){ \/\/ 获取一个可供画图的DC,我这里就直接用桌面算了 HDC hdc = GetWindowDC( GetDesktopWindow() );\/\/ 创建红色1像素宽度的实线...

c++ gps坐标比例窗口显示
另外还有一个坐标,就是实际坐标长宽,屏幕的是逻辑坐标,而一个屏幕的点也是有长宽的,比如1mm,那么100个点就是10cm,这样就是实物一样的尺寸,而这个屏幕点的长宽也是可以通过API获取的。支持数据封装和数据隐藏 在C++中,类是支持数据封装的工具,对象则是数据封装的实现。C++通过建立用户定义类支持...

C++怎么写鼠标移动到指定的X Y?
SetCursorPos可以满足你的要求 函数原型:WINUSERAPI BOOL WINAPI SetCursorPos(_In_ int X,_In_ int Y);头文件:windows.h 执行后将鼠标移动至(X, Y)的位置,X是从屏幕最左边到鼠标的距离,Y是从屏幕最上方到鼠标的距离,单位是像素 代码1,将鼠标固定在屏幕最上方,让用户不能移动自己的鼠标(...

用C\/C++编写小游戏:5.4 光标定位函数gotoxy
在程序中,可以在绘制地图前使用`gotoxy(0, 0)`将光标移动到左上角,避免屏幕内容滚动。若需在Dev-C++中使用`gotoxy`,只需包含`conio.h`头文件即可。若需自定义实现`gotoxy`函数,可以利用Windows API函数,如`SetConsoleCursorPosition`。将此函数放在`main`函数上方,然后在绘制地图前调用`gotoxy(0...

c++中如何只清除屏幕上一个已经显示的字符?
已经输出了的话,好像找不到什么很直接的去除的方法= =。。。有一个方法就是获取控制符的x和y,然后移动那个控制符到你要到的地方,把那个地方的字符变成空格。。。

C++ 如何判断鼠标有没有在窗口上? 纯API 不是MFC
GetCursorPos(&Mxy); \/\/获取鼠标在屏幕的坐标 GetWindowRect(hWnd, &cRC);\/\/获取控件位于屏幕的位置及大小 GetClientRect(hWnd, &winRC); \/\/获取控件的宽高 cRC.right = cRC.left + winRC.right; \/\/控件右下角的x坐标,也就是宽 cRC.bottom = cRC.top + winRC.bottom; \/\/控件右下角的...

C#窗口程序中输入坐标画点的问题
} void pictureBox1_MouseClick(object sender, MouseEventArgs e) { \/\/ 这里模仿文本框修改坐标点,同时刷新下picturebox,鼠标点哪里,哪里就会画一个红点 m_Pnt = e.Location; pictureBox1.Invalidate(); } private void pictureBox1_Paint(object sender, PaintEventArgs e...

C++如何画图啊
y, 并且x在前。值得注意的是当画一个封闭的多边形时, numpoints 的值取实际 多边形的顶点数加一, 并且数组polypoints中第一个和最后一个点的坐标相同。void far bar(int x1, int y1, int x2, int y2);确定一个以(x1, y1)为左上角, (x2, y2)为右下角的矩形窗口, 再按规定图 模和...

C++程序问题 如何获取到百度搜索框在屏幕上的坐标
可能需要遍历子窗体函数WINAPI上去查吧 不过 楼主可以考虑一下使用ShellExecute函数打开浏览器 给定网址 就可以实现自动收索

WinForm中X与Y的坐标位置怎么判断的? (X与Y的正、负分别代表,控件是怎 ...
如图,form的窗口大小为300*300,以像素为单位计算 form坐上角坐标:0,0,右下角为300,300 button1坐标:-30,32 (x为负值,所以跑到左边去了)button2坐标:86,-8 (y为负值,所以跑到上面去了)button3坐标:86,84

相似回答