鱼C论坛

 找回密码
 立即注册
查看: 1965|回复: 0

[学习笔记] 随机矩形

[复制链接]
发表于 2019-10-12 23:27:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
1.当消息空闲时,执行其他操作
2.改造消息循环
  2.1 vs2008提供的消息循环函数
       TranslateAccelerator函数处理菜单命令的快捷键。
        while (GetMessage(&msg, NULL, 0, 0))
        {
                if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))
                {
                        TranslateMessage(&msg);
                        DispatchMessage(&msg);
                }
        }
       该函数将WM_KEYDOWN或WM_SYSKEYDOWN消息转换为WM_COMMAND或WM_SYSCOMMAND消息(如果指定的加速器表中有键的条目),然后将WM_COMMAND或WM_SYSCOMMAND消息直接发送到指定的窗口过程。TranslateAccelerator直到窗口过程处理完消息后才返回。
  2.2  小甲鱼改造后的消息循环
        while (TRUE)
        {
                if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))   //查看其中是否有消息
                {
                        if (msg.message == WM_QUIT)   //如果退出窗口,直接退出本次循环
                        {
                                break;
                        }
                        TranslateMessage(&msg);   //处理消息
                        DispatchMessage(&msg);
                }
                else
                {
                        DrawRectangle(hwnd);   //没有消息绘制矩形
                }
        }

return msg.wParam;
}
可以区扩展阅读中看一下  系统如何销毁一个窗口  
传送门:https://fishc.com.cn/forum.php?m ... peid%26typeid%3D405
Peekmessage  //
void DrawRectangle(HWND hwnd)
{
        HBRUSH hBrush;
        HDC hdc;
        RECT rect;

        if (cxClient == 0 || cyClient == 0)
                return;

        SetRect(&rect, rand() % cxClient, rand() % cyClient, rand() % cxClient, rand() % cyClient);
        hBrush = CreateSolidBrush(RGB(rand() % 256, rand() % 256, rand() % 256));

        hdc = GetDC(hwnd);
        FillRect(hdc, &rect, hBrush);

        DeleteObject(hBrush);
        ReleaseDC(hwnd, hdc);
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-21 22:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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