鱼C论坛

 找回密码
 立即注册
查看: 5676|回复: 2

VC++ Ellipse函数使用问题

[复制链接]
发表于 2013-1-20 14:07:46 | 显示全部楼层 |阅读模式
5鱼币
本帖最后由 陈贱伟 于 2013-1-20 14:07 编辑

int x=100;
int y=100;
void CMy0Dlg::OnButton1() //按钮
{
    HWND hwnd=::FindWindow(NULL,"0");
   HDC hdc=::GetDC(hwnd);
   Ellipse(hdc,150,150,x++,y); //画圆形
}

上面代码可以可以实现 圆形往右移动 但是 形状会变形

我要的是 形状 保持 圆形   每按一次  按钮   圆形 就往右移动一下    怎么做

最佳答案

查看完整内容

以下代码就有楼上要求的效果: //不要忘了释放dc
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-1-20 14:07:47 | 显示全部楼层
本帖最后由 消失在黑暗中 于 2013-1-20 21:47 编辑

以下代码就有楼上要求的效果:
  1.         RECT rect;
  2.         n_move += 10; //记录圆位移量
  3.         HWND hwnd=::FindWindow(NULL,"1.txt - 记事本"); //获取记事本的句柄,用于在其上画圆
  4.         ::GetClientRect(hwnd, &rect);//获取客服区域的大小
  5.         ::InvalidateRect(hwnd, &rect,TRUE);//将客户区变成无效
  6.         Sleep(1);//用于目标响应WM_PAINT消息,等待目标刷新完界面
  7.         HDC hdc=::GetDC(hwnd);
  8.         Ellipse(hdc,10+n_move,10,100+n_move,100); //画圆形,Ellipse是画椭圆,相当于在矩形中内切一个椭圆,如果矩形是正方形,画的是圆

  9.         ::ReleaseDC(hwnd, hdc);
复制代码
//不要忘了释放dc
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-1-20 17:07:08 | 显示全部楼层
你作图的时候要将背景檫除再画圆,檫除背景有很多方法,最简单的就是使整个客户区无效
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-8-9 00:58

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表