Windows API一日一练(45)CreateEvent和SetEvent函数

当你创建一个线程时,其实那个线程是一个循环,不像上面那样只运行一次的。这样就带来了一个问题,在那个死循环里要找到合适的条件退出那个死循环,那么是怎么样实现它的呢?在Windows里往往是采用事件的方式,当然还可以采用其它的方式。在这里先介绍采用事件的方式来通知从线程运行函数退出来,它的实现原理是...

2007-09-25 21:32:00

阅读数:6

评论数:0

Windows API一日一练(44)wsprintf函数

接着上面,再继续实现更加强大的线程类。从上面的C++类里可以看到,要在静态函数里使用类的成员就需要获取this指针,也就是通过CreateThread函数里把类的this指针传送进来的,这样在函数ThreadProc里的参数lpParameter就是this指针了。因此把参数lpParamete...

2007-09-24 21:39:00

阅读数:4

评论数:0

Windows API一日一练(43)WaitForSingleObject函数

上面已经介绍怎么样创建一个简单的线程,在那里就需要使用函数WaitForSingleObject,它是用来做什么的呢?其实它是用来实现等待线程结束的,它的机理是这样的,通知Windows操作系统,现在我进入睡眼状态,当我关注的对象条件是否满足,如果满足了就吵醒我。在那里关注的对象是线程是否退出,...

2007-09-23 11:19:00

阅读数:6

评论数:0

Windows API一日一练(42)CreateThread函数

随着时代的发展,计算机技术发展得很快。CPU已经从单核心到多核心的转变,也就是一个CPU里具备了同时做多件事情的能力,而不是过去的分时复用了,而是实实在在地做多件事情。因此,开发软件也进入了一个新时代,就是多线程软件的开发时代。如何合理地分配多个线程同时运行,是提高软件效率的关键因素了。比如像网...

2007-09-22 22:53:00

阅读数:3

评论数:0

Windows API一日一练(41)FindWindowEx函数

当你想控制一个现有的窗口程序时,就需要获取那个程序的窗口句柄。比如有一些黑客软件需要查找到窗口,然后修改窗口的标题。在外挂流行的今天,惊奇地发现它们也可以修改输入窗口的文字。这其中,就需要使用到FindWindowEx函数来定位窗口。下面就来使用这个函数来实现控制Windows里带的计算器程序。...

2007-09-21 21:39:00

阅读数:5

评论数:0

Windows API一日一练(40)CreateRectRgn和CombineRgn函数

创新是永恒的追求。当大家习惯Windows的界面时,又想自己开发的软件耳目一新的感觉,那么就得要改变窗口的形状,比如心形的窗口,总之是不规则的窗口。这时就需要使用到叫做区域的技术。区域就是把不同的形状的图形进行组合,然后可以填充它,或者在它那里显示。比如MSN左边的TAB按钮,应就是区域的运用就...

2007-09-20 21:24:00

阅读数:6

评论数:0

Windows API一日一练(39)AnimateWindow函数

当你开发一款年轻人使用的软件时,肯定想用一点动感的特性来吸引他们。比如QQ软件就有这个特性,当你把它放到桌面边上时,就会自动隐藏起来,当你的鼠标放到那里时,就会自动慢慢移动出来,副有动感的特性,肯定让年轻人喜欢上它的。还有当你开发软件时,想先动态地显示公司的商标,或者公司的宣传材料时,就会使用到...

2007-09-19 21:50:00

阅读数:5

评论数:0

Windows API一日一练(38)SetWindowPos函数

有一天,用户突然对我说,你这个窗口能不能放到最顶端,这样操作和打开文件就很不方便了。这个功能就需要改变窗口的属性了。比如大家使用QQ时,就有一个功能,设置QQ的窗口在最顶端,不管你选择了什么窗口,QQ的界面永远都在最前面。又像FlashGet的状态查看窗口,一直保持在窗口的最前端,让你看到当前下...

2007-09-17 20:58:00

阅读数:4

评论数:0

Windows API一日一练(37)MoveWindow函数

当你设计一个对话框的窗口时,就需要布局好所有按钮、文本显示框等等,由于每个按钮都是一个窗口,那么就需要移动这些窗口到合适的位置,这时就需要使用到MoveWindow函数。或者当你的界面需要动态地修改按钮位置,比如窗口放大了,按钮就需要跟着移动,否则按钮还在原来的位置,放大也不会移动按钮的位置,这...

2007-09-16 12:48:00

阅读数:12

评论数:0

Windows API一日一练(36)SetWindowText函数

在开发软件里,有时候需要改变窗口上标题的文字。比如按钮上的文字,为了适应多国语言的显示,就需要改变它显示的内容。这时就需要使用SetWindowText函数来改它的内容。下面的例子就实现改变按钮的标题。 函数SetWindowText声明如下: WINUSERAPI BOOL ...

2007-09-14 21:36:00

阅读数:8

评论数:0

Windows API一日一练(35)OutputDebugString函数

在软件的开发过程里,大部份时间是在做什么呢?其实是在调试代码,毕竟人类的思维方式是从简单到复杂的过程,自然的认知过程也是从简单到复杂。因此,开发软件时,第一个版本总是先写简单的,然后慢慢地添加出错处理上去,也把一些没有想到的情况添加进去,那些没有想到的错误,就叫做BUG。要根除一个软件里的BUG...

2007-09-13 21:14:00

阅读数:6

评论数:0

Windows API一日一练(34)GetSysColor函数

当你需要自己显示一个与众不同的按钮时,就需要使用下面的方法来创建。当然这里也是综合地使用前面学习过的知识进行一次综合的练习。演示怎么样使用众多的API函数,这里还可以学会使用GetSysColor函数来获取系统的颜色。 WINUSERAPI DWORD WINAPI GetSysCol...

2007-09-12 21:25:00

阅读数:4

评论数:0

Windows API一日一练(33)ExtCreatePen函数

使用前面介绍的CreatePen函数来画大于1的直线时,会发现直线两端全是圆角的,有时候需要画得有角,那么这样的函数就不满足需求了,这时就需要使用另一个API函数ExtCreatePen来创建合适的画笔。ExtCreatePen函数可以创建几何画笔,还可以创建装饰用的画笔,装饰的画笔是用来画一些...

2007-09-10 22:05:00

阅读数:8

评论数:0

Windows API一日一练(32)CreatePen函数

画画是讲究色彩与线条,不同的地方是采用不同的画笔。上面显示直线,都是采用设备缺省的画笔来画直线。现在就来介绍怎么样创建自己的画笔,比如设置画笔的颜色,画笔的大小。像Windows按钮显示为3D的形状,其实就是用两种颜色画笔分别画相应的线,就生成按钮。而创建画笔就需要使用到CreatePen函数。...

2007-09-09 10:26:00

阅读数:6

评论数:0

Windows API一日一练(31)MoveToEx和LineTo函数

现在的世界流行图形界面,而不是文字,因此在软件开发里,肯定需要画图的,比如简单地画线,画一些比较特别的图形。比如让你画一个走动的时钟,就需要不断地画秒针、分针等等。MoveToEx是用来移动当前画笔的位置,LineTo是用来画直线的函数,其实在计算机图形里的直线显示是使用光栅图形学里的原理。 ...

2007-09-08 20:34:00

阅读数:6

评论数:0

Windows API一日一练(30)GetTextMetrics函数

在做报表里,经常要把输出的内容进行错落有致的排列,让用户看起来更加舒服。比如使用标题的字体输出后,再使用其小号的字体进行输出。这样就需要知道每种字体的高度,才让两行文字输出不重叠在一起,就需要计算每种字体的高度。这时就需使用GetTextMetrics函数来获取字体的高度。 函数Get...

2007-09-07 20:42:00

阅读数:6

评论数:0

Windows API一日一练(29)SelectObject和DeleteObject函数

Windows显示设备的属性,共有下面几种:位图、画刷、字体、画笔、区域。如果要设置它们到当前设备里,就需要使用SelectObject函数,比如上面介绍的字体设置,就会用到这个函数。当你创建一个位图时,这时Windows就会在内存里分配一块内存空间,用来保存位图的数据。当你创建字体时,也会分配...

2007-09-05 21:52:00

阅读数:10

评论数:0

Windows API一日一练(28)CreateFont函数

文字的出现历史可以追溯到甲骨文的使用,直到今天使用的宋体文字。在软件开发里,经常遇到是跨国语言的使用,由于世界在变平,全球在变小,交通运输非常发达,由我所在的深圳,向东坐飞机12个小时就可以到达伦敦,向西坐飞机12小时就可以到达美国,可算得上朝发夕至。比如像炒外汇的人,一天可以不用睡觉都在工作着...

2007-09-03 22:54:00

阅读数:4

评论数:0

Windows API一日一练(27)SetBkMode函数

上面已经介绍输出红色的字符串时,发现背景的黑色也变成白色了,这样的输出是破坏背景的。那需要使用什么方法来保持背景不变,而又能输出红色的字符串呢?比如按钮的文字颜色是黑色的,而背景是灰色的。这就需要使用SetBkMode函数来设置DrawText函数的输出方式,显示设备共有两种输出方式:OPAQU...

2007-09-01 20:56:00

阅读数:6

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭