关于如何获取HDC的有关问题

关于怎么获取HDC的问题
我知道通过GetDC()->GetSafeHandle()和::GetDC()都可以获得当前窗体的HDC
问题是如果是我是OnInitDialog()中调用上面两个方法的话,老是失败(用来绘图,可是没有反应)

我试试把OnInitDialog()里面的代码挪到一个按键的响应函数里面就可以正常绘图

我猜想会不会是OnInitDialog()的时候,有什么初始化的步骤没完成, 所以不能获取到HDC呢?

那有没有什么办法获取到HDC或者有没有什么办法知道当前窗体有没有初始化完成?
------解决方案--------------------
你在响应WM_PAINT消息时绘图呀

要不你会被擦除的
------解决方案--------------------
OnInitDialog()中绘图不行的,窗体显示的时候会发送WM_PAINT消息擦出你的绘的图,你应当在WM_PAINT消息中进行绘图。
------解决方案--------------------
ls都给出答案了。
如果初始化要画画,就把代码放onpaint里。
如果onpaint里还要放其他的绘图代码,又不想用bool值选择,那么比较好的方法使用memdc,在initdialog中改在memdc上画图,在再在onpaint中将memdc里的内容贴到窗口上。如果在别处要修改图案,就在memdc上修改,改完后发wm_paint消息即可。