记录一个问题
新建的一个 mfc的CFormView工程,在状态栏输出当前鼠标的位置。
像这样,先在视图类窗口获取父窗口(框架类窗口),
转换后用框架类窗口对象去调用这个对象内部的状态栏成员变量m_wndStatusBar 。
然后用setwindowText函数去设置显示的内容。
运行发现,鼠标在子窗口一动,程序就死掉了
调试发现,getparent() 这个函数获得的CMainFrame对应的句柄和咱们的框架窗口的句柄不是一个。
GetParent()->GetDescendantWindow(AFX_IDW_STATUS_BAR)->SetWindowText(str);
用这个方法也不行。
为什么?????无从得知。。。有人知道可以留言解惑,万分感谢!!
解决办法:把GetParent() 换成 AfxGetMainWnd()就行了,或者 采用另外的修改状态栏的方法。
一共 有下面几种方法;
((CMainFrame*)AfxGetMainWnd())->m_wndStatusBar.SetWindowText(str);
((CMainFrame*)GetParent())->SetMessageText(str);
((CMainFrame*)GetParent())->GetMessageBar()->SetWindowText(str);
AfxGetMainWnd()->GetDescendantWindow(AFX_IDW_STATUS_BAR)->SetWindowText(str);
——END