为什么在调用看似无关的函数之前,矩形窗口不显示?

时间:2017-08-08 01:49:17

标签: winapi gdi

我正在努力尝试使用GDI直接在桌面窗口上绘图。

在我看到一个有效的例子之前,似乎没有任何作用;但只有在调用RegisterClassEx之后。我用LoadIcon替换了RegisterClassEx,它仍然有效。

以下代码仅在调用LoadIcon时绘制正方形(在3秒延迟睡眠后)。

最初我认为这只是我的MinGW,但是我在Visual Studio 2012中进行了测试,直到睡眠之后它也没有画出方块。

为什么会发生这种情况,如果不注册任何窗口类/调用LoadIcon,我该怎么做才能使绘图工作?

#include <Windows.h>

int main(int argc, char **argv)
{
    HBRUSH hbr = CreateSolidBrush(RGB(0, 255, 255));
    RECT rect = {0, 0, 100, 100};
    HDC hdc = GetDC(NULL);

    FillRect(hdc, &rect, hbr);
    Sleep(3000);
    LoadIcon(NULL,IDI_APPLICATION);

    return 0;
}

0 个答案:

没有答案