有时需要在OnSize里面调整控件大小,我一般这样用if(IsWindow(GetDlgItem(IDC_STATIC1)->GetSafeHwnd()))但今天有个同事说这样不对,调用GetDlgItem(IDC_STATIC1)的时候IDC_STATIC1可能还没准备好,就会造成非法访问,说应当这样使用:
if(IsWindow(::GetDlgItem(GetSafeHwnd(), IDC_STATIC1)))请问他说的有道理吗?
if(IsWindow(::GetDlgItem(GetSafeHwnd(), IDC_STATIC1)))请问他说的有道理吗?
这样就可以了
只要窗口初始化过了,就没有任何问题
比如CDialog窗口,只要OnInitDialog返回了,那窗口上的控件都已经创建完了,可以通过GetDlgItem(IDC_STATIC1)来获得了
GetDlgItem(IDC_STATIC1)是否为空是不是只能说明CWnd对象是否构造了,确定窗口是否已经创建好的话还得看GetSafeHwnd()的返回值?
GetDlgItem(IDC_STATIC1)->MoveWindow......当程序正在执行到MoveWindow的时候,对话框突然被销毁了,这种情况可能会发生吗?因为我的程序有时会崩溃,每次崩溃windbg捕获到的信息都是MoveWindow处...