任务目标
设计一个简单的Windows 窗口程序,在程序窗口内任意位置按下鼠标左键,可绘制范围在10-100之间随机大小的正方形。并且显示的正方形用红色填充。
效果图
小结
程序先是触发鼠标左键点击事件,保存鼠标点击的坐标,并生成随机数,保存为对角的坐标,由wm_paint先画出矩形边框,再将矩形区域进行填充即可。这次实验主要遇到了两个问题,第一个是如何画矩形。我通过百度发现可以用rectangle进行绘图,就参考模板填写参数即可。第二个是产生随机数遇到问题。开始我将srand(time(null))函数放在case内,我发现每次点击产生的矩形面积是逐渐增大,大到一定值后又从最小值开始递增。于是我把srand(time(null))放在WndProc函数内、switch外仍然有这个问题。最后我将这个函数放在WinMain内便可以了。我思考发生这个的原因,如果在WndProc内设置种子,每当鼠标点击一次,会运行一次WndProc,种子便设置为当前时间,因为时间差距不大,导致随机数初始值相近并递增。因此需要将种子设置在WinMain下,避免重复设置。