学习GDI基本框架及几何绘图之后,使用VS2015创建新Win32空项目。编译以下代码。
实现 :生成800*600窗口,展示6个空心填充矩形、6条直线,颜色皆随机,填充样式随机。按下ESC刷新画面,同时播放WindowXP.wav音频文件。
可能是应为产生随机数的方法问题,使用图像刷新极限速度大概为1s每次。可能是同一秒内产生的随机数固定,故新值与旧值相同。
在调试过程中,出现调用MessageBox无法弹出窗口,需按alt的问题,经查阅资料,最终断定为消息通道被WM_PAINT占用,导致。
原代码为:
switch (message)
{
//如果窗口更新
case WM_PAINT:
break;
//如果点击叉号
case WM_CLOSE:
//弹出窗口判断是否选择YES
if (IDYES == MessageBox(hwnd, L"是否退出程序?", L" ", MB_YESNO))
DestroyWindow(hwnd);
break;
将 WM_PAINT分类删除可解决问题,或者给以内容填充。
新代码为:
switch (message)
{
//如果窗口更新
case WM_PAINT:
g_hdc = BeginPaint(hwnd, &paintstruct);
Game_Paint(hwnd);
EndPaint(hwnd, &paintstruct);
ValidateRect(hwnd, NULL);
break;
//如果点击叉号
case WM_CLOSE:
//弹出窗口判断是否选择YES
if (IDYES == MessageBox(hwnd, L"是否退出程序?", L" ", MB_YESNO))
DestroyWindow(hwnd);
break;
问题解决。
全部代码:
/*
第一次使用GDI绘图
201