0 голосов
спросил от в категории MFCVisualC
Вы можете выполнять итерацию по вашим шаблонам, документам и представлениям:
// Get the position of the first document template in the app POSITION posTmpl = GetFirstDocTemplatePosition(); while (posTmpl) {     // Get the first document template.     CDocTemplate *pTmpl = GetNextDocTemplate(posTmpl);     if (pTmpl)     {         // Get the position of the first document associated with the template         POSITION posDoc = pTmpl->GetFirstDocPosition();         while (posDos)         {             CDocument *pDoc = tmpl->GetNextDoc(posDos);             if (pDoc)             {                 // Get the position of the first view for the document                 POSITION posView = pDoc->GetFirstViewPosition();                 while (posView)                 {                     CView *pView = pDoc->GetNextView(posView);                 }             }         }     } }

Если у вас есть только один шаблон, вы можете удалить внешний контур и используйте pRunTemplate . Если у вас есть только одно представление для каждого документа, самое внутреннее условие while может быть заменено условием if.

Проверка того, что представление уже открыто, зависит от вашей организации документа/представления , Если файл не открыт, для шаблона нет документа. Если файл открыт, вы можете сравнить его с помощью CDocument :: GetPathName (). Вы также можете проверить специальные состояния вашего документа и просмотреть классы, внеся значения возвращаемого значения GetNext ... () в производные классы.

Наконец, вы можете поместить проверку в обработчик обновления ID_RUNVIEW . Затем команда отключается, когда проверка не выполняется, чтобы отменить это для пользователя:
ON_UPDATE_COMMAND_UI(ID_RUNVIEW, OnUpdateRunview)

Пожалуйста, войдите или зарегистрируйтесь чтобы ответить на этот вопрос.

Категории

Добро пожаловать на сайт DraftingCode Q&A, где вы можете задавать вопросы и получать ответы от других членов сообщества.

Похожие вопросы

0 голосов
0 ответов
0 голосов
0 ответов
0 голосов
0 ответов
спросил 20 Июнь, 17 от jochen arndt в категории MFCVisualC
0 голосов
0 ответов
спросил 31 Янв, 13 от merano в категории MFCVisualC
...