惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
Darknet – Hacking Tools, Hacker News & Cyber Security
Jina AI
Jina AI
博客园_首页
J
Java Code Geeks
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 司徒正美
Hugging Face - Blog
Hugging Face - Blog
S
SegmentFault 最新的问题
MyScale Blog
MyScale Blog
P
Proofpoint News Feed
L
Lohrmann on Cybersecurity
Forbes - Security
Forbes - Security
大猫的无限游戏
大猫的无限游戏
Vercel News
Vercel News
Y
Y Combinator Blog
Google DeepMind News
Google DeepMind News
The Register - Security
The Register - Security
N
News | PayPal Newsroom
S
Security Archives - TechRepublic
量子位
Cisco Talos Blog
Cisco Talos Blog
V
V2EX
C
Cisco Blogs
The Cloudflare Blog
Stack Overflow Blog
Stack Overflow Blog
L
LangChain Blog
Scott Helme
Scott Helme
S
Securelist
Security Latest
Security Latest
爱范儿
爱范儿
TaoSecurity Blog
TaoSecurity Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
I
Intezer
L
LINUX DO - 最新话题
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
C
Check Point Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
美团技术团队
Know Your Adversary
Know Your Adversary
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
PCI Perspectives
PCI Perspectives
月光博客
月光博客
T
Tailwind CSS Blog
Cloudbric
Cloudbric
小众软件
小众软件
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
K
Kaspersky official blog
D
DataBreaches.Net
博客园 - 【当耐特】
有赞技术团队
有赞技术团队

博客园 - 跌跌撞撞

CArchive的一个经验 加载COM的方式 学习反汇编记录 299错误解决记录 23日记录 用ADO访问存储过程的参数问题 SDKMisc的一个小错误 年初一作诗 走出GDI 总是在最求效率。 - 跌跌撞撞 新感 下来做什么呢 开发目录包括的内容 太可爱的小小播放器 lucene的设计 上海感觉 写一点感想 项目管理的成功秘密(翻译) 昨天看书的心得
设计Client
跌跌撞撞 · 2011-10-13 · via 博客园 - 跌跌撞撞

最近设计了一个工作良好的图像处理客户区。

当客户区移动缩放时,图像都能居中显示。

软件的下载地址:https://files.cnblogs.com/charles_lznix/Zooly.rar

主要解决了几个问题:

1、快

2、操作方式多样,能适应客户区尺寸改变、客户区位置移动甚至超出屏幕也能工作良好。

图像的缩放、角度变换,滚动条的配合等事情,将在此基础上进一步设计出来。

--------------------------------------------------------------------------------------------------

进一步的改进

上次的设计还缺少一些功能,这次增加缩放、移动、滚动条。

图1

图2

图1、2是效果图,可以看到已经有了客户区、画布、图片、滚动条,

操作自定义了几个简单的功能:

上、下、左、右:移动图像。

Ctrl+上、下:放大、缩小图像。

LButton:在图像中点击处绘制一个小矩形。

我希望这个工作区比PS的效果要好,主要是绘图快、操作稳定。

下载地址:https://files.cnblogs.com/charles_lznix/Zooly1.rar

好像可以用的,我已经把资源装到Exe中了,大概测了一下可以用,如果不能用就看不到了,要告诉我。

还有一些小问题,比如图像移到接近顶部时,他娘的不刷新,显的被卡了一下。等今天再改。

设计好上面这些后,在WinApp的OnIdle中进行渲染,就能形成动画了。

BOOL CZoolyApp::OnIdle(LONG lCount)
{
    if(CWinApp::OnIdle(lCount)) return TRUE;

    ...

    MyRender();

    ...

}

如此设计,客户区基本成型,工作良好,能绘制各种动画。

工作这么些年,我已经习惯打开"任务管理器"检查软件性能,发觉该程序始终占据50%CPU,消耗很多CUP count

这是什么原因呢?

为此设计了D3D类型的客户区,使用BackSurface进行绘图,消耗依然如故...

将OnIdle程序移入Thread中执行,还是消耗如故...

减少程序渲染层,还是如此...

这是个大问题,长时间高负载工作,会时CPU呼呼怪叫,在多开时更会卡的不成样。

后来解决了,怎么解决的呢?

很简单 在MyRender()中加入一句Sleep(20)

CPU消耗立刻降低到0-8% CPU count也在0-1之间

原因是什么呢?我分析是Sleep能挂起程序,给其他工作让路,也就是说,我们原先是堵塞了CPU造成了高消耗。

只要你Sleep了,谦虚的对其他程序说,请你先做吧,你的程序就会工作的更平和。

好了经过接近2个月的设计,Client基本成型,各个图层层次良好,基本的类也都建立起来了。软件的基础部分基本完成。

下来是扩展工作,脚本设计、资源管理都是他们的主题。有了成果再继续发心得。