在文档类中:(本程序只有一个文档模板)
void CMultiDoc::OnEditCopy()
{
CDocTemplate *pTemplate=GetDocTemplate();//获得文档模板对象 POSITION pos=pTemplate->GetFirstDocPosition();//获得所有的文档
POSITION pos2; CDocument *pDoc; while(pos){
pDoc=pTemplate->GetNextDoc(pos); pos2=pDoc->GetFirstViewPosition();//获得文档对应的视图 pDoc->GetNextView(pos2)->GetParentFrame()->SetFocus();
::Sleep(1000);
}
}
我创建了4个MDI子窗口,目的是轮流的让每个子窗口获得焦点,但是这样写达不到效果??????
我知道可以用MDINext(),但是用MDINext不好确定子窗口个数????
void CMultiDoc::OnEditCopy()
{
CDocTemplate *pTemplate=GetDocTemplate();//获得文档模板对象 POSITION pos=pTemplate->GetFirstDocPosition();//获得所有的文档
POSITION pos2; CDocument *pDoc; while(pos){
pDoc=pTemplate->GetNextDoc(pos); pos2=pDoc->GetFirstViewPosition();//获得文档对应的视图 pDoc->GetNextView(pos2)->GetParentFrame()->SetFocus();
::Sleep(1000);
}
}
我创建了4个MDI子窗口,目的是轮流的让每个子窗口获得焦点,但是这样写达不到效果??????
我知道可以用MDINext(),但是用MDINext不好确定子窗口个数????
http://topic.csdn.net/u/20081018/17/80c98725-0219-453b-9a5d-97484af8addd.html
MSG msg;
PeekMessage(&msg, 0, 0, 0, 0);
就会立即显示了。
具有键盘焦点的窗口及其各级父窗口都是活动窗口,用SetActiveWindow获得的是顶级窗口(其父窗口是NULL),平时所说的活动窗口通常是指这个顶级窗口。