標準命令實作 TN022:
注意事項 |
---|
由於它第一次線上文件中包含尚未更新下列技術提示。如此一來,某些程序和主題可能已經過期或不正確。如需最新資訊,建議您先搜尋線上文件索引中有興趣的主題。 |
這張便箋說明 MFC 2.0 所提供的標準命令實作。 讀取技術的附註 21 第一個因為它會描述用來執行許多標準命令的機制。
這項描述會假設 MFC 架構、 Api,以及常見的程式設計實務的知識。 文件記載,以及未記載 「 實作只 」 Api 有說明。 這不是可以從這裡開始學習的功能或如何在 MFC 中撰寫程式。 如需更多的一般資訊,如需詳細資訊的文件記載的 Api,請參閱 Visual C++。
問題
MFC 會定義在標頭檔 AFXRES 許多標準命令 Id。H. 這些命令的架構支援固定不變。 了解架構類別何處以及如何處理這些命令不會只告訴您如何架構在內部的運作方式,但將會如何自訂標準實作,並教導您一些技巧來實作您自己的命令處理常式,可用來提供有用的資訊。
這份技術提示的內容
每個命令 ID 是由兩個的章節所述:
標題: 命令 ID 的符號名稱 (例如, ID_FILE_SAVE) 後面的指令 (例如,「 儲存目前的文件 」) 以冒號分隔的目的。
一或多個段落描述哪些類別實作命令,以及預設實作不會
大多數的預設命令案例被 prewired 架構的基底類別訊息對應中。 有需要明確的配置功能,在您的衍生類別中的某些命令實作方式。 在 「 附註 」 會加以說明。 如果您選擇正確的選項即 AppWizard 中時,這些預設處理常式將為您產生基本架構應用程式中連線。
命名規範
標準命令中,請依照下列簡單的命名慣例,我們建議您盡可能使用。 大部分的標準命令都位於應用程式的功能表列中的標準位置。 符號的命令名稱是由後面加上標準快顯功能表名稱,後面加上功能表項目名稱"ID_"開頭。 符號名稱是以具有底線斷字大寫。 對於不具標準功能表項目名稱的命令,邏輯的指令名稱會定義開頭為"ID_"(例如, ID_NEXT_PANE)。
我們可以使用的前置詞為"ID_"來指示設計用來繫結至功能表項目、 工具列按鈕或其他命令使用者介面物件的指令。 處理"ID_"命令的命令處理常式應該使用ON_COMMAND和ON_UPDATE_COMMAND_UI機制的 MFC 命令架構。
我們建議您以不按照命令架構並需要特定功能表的程式碼,以啟用或停用它們的功能表項目使用標準的"IDM_"前置詞。 不用說功能表的特定命令的數目應該是小型因為遵循 MFC 命令架構不只會讓命令處理常式功能更強大 (因為它們會使用工具列),但是會讓命令處理常式程式碼可重複使用。
識別碼範圍
請參閱技術的附註 20 如需詳細資訊,使用 MFC 的識別碼範圍。
MFC 的標準命令落在 0xE000 到 0xEFFF 的範圍。 請不要依賴這些識別碼的特定值因為它們有可能在未來版本的文件庫中的變更。
您的應用程式應該 0x8000 到 0xDFFF 範圍中定義它的命令。
標準命令 Id
對於每個命令 ID,並使用標準訊息行提示字串,請參閱檔案提示。RC。 該功能表提示的字串識別碼必須是個命令 id。
ID_FILE_NEW 會建立新的/空白文件。
注意事項 您必須連接這個檔案,您CWinApp-衍生類別的訊息對應,若要啟用這項功能。
CWinApp::OnFileNew應用程式中實作這個命令,以不同的方式取決於文件的範本數目。 如果沒有只能有一個CDocTemplate, CWinApp::OnFileNew將會建立該型別,以及適當的框架和檢視類別的新文件。
如果有一個以上的CDocTemplate, CWinApp::OnFileNew將會提示使用者] 對話方塊 (AFX_IDD_NEWTYPEDLG) 讓他們選取要使用的文件類型。 選定的CDocTemplate用來建立文件。
一個常見的自訂的ID_FILE_NEW ,是要提供不同,文件類型的多個圖形的選擇。 在此情況下您可以實作您自己 CMyApp::OnFileNew ,並將它放在您的訊息對應,而不是CWinApp::OnFileNew。 沒有需要呼叫基底類別實作。
另一個常見的自訂的ID_FILE_NEW ,是要提供不同的命令來建立每個類型的文件。 在此情況下,您應該定義新的命令 Id,例如 ID_FILE_NEW_CHART 和 ID_FILE_NEW_SHEET。
ID_FILE_OPEN 會開啟現有的文件。
注意事項 您必須連接這個檔案,您CWinApp-衍生類別的訊息對應,若要啟用這項功能。
CWinApp::OnFileOpen具有非常簡單的實作,電話的 CWinApp::DoPromptFileName 後面加上CWinApp::OpenDocumentFile要開啟的檔案的檔案或路徑名稱。 CWinApp實作常式 DoPromptFileName ,就會出現標準的 [開啟舊檔] 對話方塊,並從目前的文件範本取得的附檔名以填滿它。
一個常見的自訂的ID_FILE_OPEN是來自訂 [開啟舊檔] 對話方塊,或新增額外的檔案篩選條件。 建議的方法來自訂這是實作來取代預設值與您自己的開啟舊檔] 對話方塊中,呼叫CWinApp::OpenDocumentFile與文件的檔名或路徑名稱。 沒有需要呼叫基底類別。
ID_FILE_CLOSE 會關閉目前開啟的文件。
CDocument::OnFileClose 呼叫CDocument::SaveModified來提示使用者儲存文件,如果它已被修改,接著再呼叫OnCloseDocument。 所有右邏輯,包括破壞文件,都是在OnCloseDocument的常式。
注意事項 ID_FILE_CLOSE 以不同的方式是從WM_CLOSE訊息或 SC_CLOSE 傳送到文件的框架視窗的 [系統] 命令。關閉視窗,會顯示文件的最後一個框架視窗時,才會關閉文件。關閉文件與 ID_FILE_CLOSE 才不會關閉文件,但將會關閉所有的框架視窗,顯示文件。
ID_FILE_SAVE 會儲存目前的文件。
實作使用 helper 常式 CDocument::DoSave ,可用兩個 OnFileSave 和 OnFileSaveAs。 如果您儲存之前尚未儲存的文件 (亦即,它並沒有路徑名稱,如的情況下 FileNew) 或唯讀文件中,已讀取 OnFileSave 邏輯有如 ID_FILE_SAVE_AS 命令,並要求使用者提供新的檔名。 開啟檔案並進行儲存的實際程序會透過虛擬函式OnSaveDocument。
有兩個常見的原因,來自訂 ID_FILE_SAVE。 對於沒有儲存的文件,只需將移除 ID_FILE_SAVE 功能表項目和工具列按鈕,從您的使用者介面。 同時也請確定永遠不髒您的文件 (亦即,絕不會呼叫CDocument::SetModifiedFlag),架構將永遠不會導致要儲存文件。 將儲存到某地磁碟檔以外的文件] 定義新的命令,該作業。
如果是COleServerDoc, ID_FILE_SAVE 同時用於檔案儲存 (適用於一般的文件]) 和檔案的更新程式 (適用於內嵌文件])。
如果您的文件的資料會儲存在個別磁碟檔案,但是不想使用預設的 CDocument 序列化實作,您應該覆寫CDocument::OnSaveDocument而不是 OnFileSave。
ID_FILE_SAVE_AS 會將儲存目前的文件,以不同的檔案名稱。
CDocument::OnFileSaveAs 實作使用相同 CDocument::DoSave 為 helper 常式 OnFileSave。 OnFileSaveAs 指令被視為只是 ID_FILE_SAVE 如果文件有沒有檔名,在儲存之前。 COleServerDoc::OnFileSaveAs 實作的邏輯,以儲存一般文件的資料檔案或儲存代表 OLE 物件伺服程式文件內嵌於其他應用程式為不同的檔案。
如果您自訂的邏輯 ID_FILE_SAVE,您可能想要自訂 ID_FILE_SAVE_AS 中類似的方式或作業的 [另存新檔 」 可能不適用於您的文件。 如果不需要,您可以從功能表列移除功能表項目。
ID_FILE_SAVE_COPY_AS 儲存複製目前文件以新名稱。
COleServerDoc::OnFileSaveCopyAs 的實作都非常類似於 CDocument::OnFileSaveAs,不同之處在於文件物件不"附上"基礎檔案後儲存位置]。 也就是說,如果記憶體中的文件 「 已修改 」 在儲存之前,它是仍然 「 已修改 」。 此外,這個命令有不會影響路徑名稱或儲存文件中的標題。
ID_FILE_UPDATE 也會告知容器儲存內嵌的文件。
COleServerDoc::OnUpdateDocument實作只是 notifiies 要儲存內嵌的容器。 容器接著呼叫適當的 OLE Api,才能儲存內嵌的物件。
ID_FILE_PAGE_SETUP 會叫用的特定應用程式頁面安裝/版面配置] 對話方塊。
目前沒有任何的標準,此對話方塊中,而架構沒有預設的實作這項指令。
如果您選擇要實作這項指令,我們建議您在使用此命令 id。
ID_FILE_PRINT_SETUP 來叫用標準的列印設定] 對話方塊。
注意事項 您必須連接這個檔案,您CWinApp-衍生類別的訊息對應,若要啟用這項功能。
這個命令會叫用的標準列印設定] 對話方塊可讓使用者自訂的印表機和列印設定至少這份文件或至多所有文件在這個應用程式。 若要變更整個系統的預設印表機設定,您必須使用 [控制台]。
CWinApp::OnFilePrintSetup具有非常簡單的實作建立CPrintDialog物件,並呼叫 CWinApp::DoPrintDialog 實作函式。 這會設定應用程式的預設印表機設定。
用來自訂此指令的一般需求是要讓每個文件的印表機設定,應該儲存與文件儲存時。 若要這樣做,您應該加入訊息對應處理常式中的您 CDocument 建立的類別CPrintDialog物件,將它初始化其相對應的印表機屬性 (通常是 hDevMode 和 hDevNames),呼叫 CPrintDialog::DoModal, ,並儲存已變更的印表機設定。 強固的實作,您應該注意的實作 CWinApp::DoPrintDialog 來偵測錯誤與 CWinApp::UpdatePrinterSelection 來處理具有直覺性的預設值與修訂記錄整個系統的印表機。
ID_FILE_PRINT 目前文件的標準列印
注意事項 您必須連接這個檔案,您CView-衍生類別的訊息對應,若要啟用這項功能。
這個命令會列印目前的文件,或更正確地啟動列印的程序,牽涉到叫用標準的 [列印] 對話方塊,並執行列印的引擎。
CView::OnFilePrint 實作這項指令,以及主要列印迴圈。 它會呼叫虛擬CView::OnPreparePrinting的使用者利用 [列印] 對話方塊的提示。 它再準備要移至印表機的輸出 DC,就會出現 [列印進度] 對話方塊 (AFX_IDD_PRINTDLG),並傳送StartDoc到印表機的逸出。 CView::OnFilePrint 也包含了主要頁面導向列印迴圈。 每個網頁,它會呼叫虛擬CView::OnPrepareDC後面加上StartPage逸出,並呼叫虛擬CView::OnPrint該網頁。 當完成時,虛擬CView::OnEndPrinting呼叫,且列印進度對話方塊關閉時。
MFC 列印架構的設計被為了將許多不同的方法,讓列印和預覽列印中的連結。 您通常可以找到各種CView可覆寫的函式,適用於任何頁面導向的列印工作。 如果只是應用程式所使用的印表機的非分頁導向的輸出,您應該會發現需要取代 ID_FILE_PRINT 的實作。
ID_FILE_PRINT_PREVIEW 輸入目前的文件的預覽列印模式。
注意事項 您必須連接這個檔案,您CView-衍生類別的訊息對應,若要啟用這項功能。
CView::OnFilePrintPreview 啟動預覽列印模式藉由呼叫文件記載的 helper 函式 CView::DoPrintPreview。 CView::DoPrintPreview 是主要的引擎在預覽列印迴圈,正如 OnFilePrint 就是主要的引擎,列印迴圈。
預覽列印作業中可自訂以各種方式藉由將不同的參數來傳遞 DoPrintPreview。 請參閱技術的附註 30、 可將探討一些預覽列印的詳細資訊,以及如何加以自訂。
ID_FILE_MRU_FILE1... FILE16 一系列檔案最近使用的命令 Id list。
CWinApp::OnUpdateRecentFileMenu 是更進階的用途之一是更新命令 UI 處理常式ON_UPDATE_COMMAND_UI的機制。 在您的功能表資源,您只需要定義單一功能表項目 id 為 ID_FILE_MRU_FILE1。 該功能表項目會保留一開始已停用。
為 MRU 清單成長,多個功能表項目會加入至清單。 標準的CWinApp實作會預設為標準的四個最近使用過檔案的限制。 您可以變更預設值,藉由呼叫CWinApp::LoadStdProfileSettings與變大或較小的值。 MRU 清單會儲存在應用程式。INI 檔案。 清單已載入您的應用程式中InitInstance函式,如果您呼叫LoadStdProfileSettings,且會儲存您的應用程式結束時。 最近使用的更新命令 UI 處理常式也會轉為絕對路徑顯示在 [檔案] 功能表上的相對路徑。
CWinApp::OnOpenRecentFile 是ON_COMMAND ,用於執行實際的命令處理常式。 它只會從 MRU 清單和呼叫取得檔名CWinApp::OpenDocumentFile,這會開啟檔案並更新 MRU 清單中的所有工作。
不建議此命令處理常式的自訂。
ID_EDIT_CLEAR 會清除目前的選取範圍
目前沒有任何標準的實作,此命令。 您必須為每一個實作這CView-衍生的類別。
CEditView提供使用這個命令的實作CEdit::Clear。 如果沒有目前的選取範圍,則會停用該命令。
如果您選擇要實作這項指令,我們建議您在使用此命令 id。
ID_EDIT_CLEAR_ALL 會清除整份文件。
目前沒有任何標準的實作,此命令。 您必須為每一個實作這CView-衍生的類別。
如果您選擇要實作這項指令,我們建議您在使用此命令 id。 請參閱 MFC 教學課程範例手繪多邊形的實作範例。
Id_edit_copy 的命令是會將目前的選取範圍複製到剪貼簿。
目前沒有任何標準的實作,此命令。 您必須為每一個實作這CView-衍生的類別。
CEditView提供實作這項指令,可將目前選取的文字複製到剪貼簿以 CF_TEXT 使用的CEdit::Copy。 如果沒有目前的選取範圍,則會停用該命令。
如果您選擇要實作這項指令,我們建議您在使用此命令 id。
ID_EDIT_CUT 剪下目前的選取範圍到剪貼簿。
目前沒有任何標準的實作,此命令。 您必須為每一個實作這CView-衍生的類別。
CEditView提供實作這項指令將目前選取的文字轉換為以 CF_TEXT 使用剪貼簿剪下的CEdit::Cut。 如果沒有目前的選取範圍,則會停用該命令。
如果您選擇要實作這項指令,我們建議您在使用此命令 id。
ID_EDIT_FIND 會開始 「 尋找 」 操作,就會出現 [尋找非強制回應] 對話方塊。
目前沒有任何標準的實作,此命令。 您必須為每一個實作這CView-衍生的類別。
CEditView提供實作這項指令,它會呼叫 helper 函式實作的 OnEditFindReplace 使用,並將先前的尋找/取代設定儲存在私用實作變數。 CFindReplaceDialog類別用來管理的非強制回應對話方塊提示使用者。
如果您選擇要實作這項指令,我們建議您在使用此命令 id。
ID_EDIT_PASTE 插入目前的剪貼簿] 內容。
目前沒有任何標準的實作,此命令。 您必須為每一個實作這CView-衍生的類別。
CEditView提供實作這項指令,它將會複製目前剪貼簿的資料取代選取的文字使用的CEdit::Paste。 命令已停用,如果沒有任何以 CF_TEXT 剪貼簿中。
COleClientDoc 只是提供對這個命令的 [更新] 指令 UI 處理常式。 如果 [剪貼簿] 中不含內嵌 OLE 項目/物件,就會停用命令。 您負責撰寫實際執行實際的貼上命令處理常式。 如果您的 OLE 應用程式也可以貼上其他格式,您必需提供一個檢視] 或 [文件中的您自己更新命令 UI 處理常式 (也就是某處之前 COleClientDoc 在命令目標傳送)。
如果您選擇要實作這項指令,我們建議您在使用此命令 id。
對於取代標準的 OLE 實作,使用COleClientItem::CanPaste。
ID_EDIT_PASTE_LINK 插入連結從目前的剪貼簿] 內容。
目前沒有任何標準的實作,此命令。 您必須為每一個實作這CView-衍生的類別。
COleDocument此命令,只是提供更新命令 UI 處理常式。 如果 [剪貼簿] 中不含連結的 OLE 項目/物件,就會停用命令。 您負責撰寫實際執行實際的貼上命令處理常式。 如果您的 OLE 應用程式也可以貼上其他格式,您必需提供一個檢視] 或 [文件中的您自己更新命令 UI 處理常式 (也就是某處之前COleDocument在命令目標傳送)。
如果您選擇要實作這項指令,我們建議您在使用此命令 id。
對於取代標準的 OLE 實作,使用COleClientItem::CanPasteLink。
ID_EDIT_PASTE_SPECIAL 將目前剪貼簿內容的選項。
目前沒有任何標準的實作,此命令。 您必須為每一個實作這CView-衍生的類別。 MFC 不提供此對話方塊。
如果您選擇要實作這項指令,我們建議您在使用此命令 id。
ID_EDIT_REPEAT 會重複執行上一個作業。
目前沒有任何標準的實作,此命令。 您必須為每一個實作這CView-衍生的類別。
CEditView提供這個命令,以重複上一次的尋找作業的實作。 使用上一次尋找私用實作變數。 如果無法嘗試尋找的命令已停用。
如果您選擇要實作這項指令,我們建議您在使用此命令 id。
ID_EDIT_REPLACE 會開始取代作業,就會出現 [非強制回應的取代] 對話方塊。
目前沒有任何標準的實作,此命令。 您必須為每一個實作這CView-衍生的類別。
CEditView提供實作這項指令,它會呼叫 helper 函式實作的 OnEditFindReplace 使用,並將先前的尋找/取代設定儲存在私用實作變數。 CFindReplaceDialog類別用來管理非強制回應對話方塊,提示使用者。
如果您選擇要實作這項指令,我們建議您在使用此命令 id。
ID_EDIT_SELECT_ALL 會選取整份文件。
目前沒有任何標準的實作,此命令。 您必須為每一個實作這CView-衍生的類別。
CEditView提供這個命令,選取文件中的所有文字的實作。 如果不沒有選取任何文字,則會停用命令。
如果您選擇要實作這項指令,我們建議您在使用此命令 id。
ID_EDIT_UNDO 會復原上次的作業。
目前沒有任何標準的實作,此命令。 您必須為每一個實作這CView-衍生的類別。
CEditView提供的實作命令,使用CEdit::Undo。 如果命令為停用CEdit::CanUndo傳回 FALSE。
如果您選擇要實作這項指令,我們建議您在使用此命令 id。
ID_EDIT_REDO 重做上次的作業。
目前沒有任何標準的實作,此命令。 您必須為每一個實作這CView-衍生的類別。
如果您選擇要實作這項指令,我們建議您在使用此命令 id。
ID_WINDOW_NEW 會開啟使用中文件的另一個視窗。
CMDIFrameWnd::OnWindowNew 實作的方式,使用目前的文件的文件範本來建立另一個框架,包含目前文件的另一個檢視這個強大的功能。
就像大部分多個文件介面 (MDI) 視窗的功能表命令,命令已停用,如果沒有任何作用中 MDI 子視窗。
不建議此命令處理常式的自訂。 如果您要提供建立詳細的檢視表或框架視窗的命令,您可能會最好不要 ¬ 您自己的指令。 您可以複製的程式碼,從 CMDIFrameWnd::OnWindowNew ,並進行修改,您所喜愛的特定框架和檢視類別。
將 ID_WINDOW_ARRANGE 圖示排列在 MDI 視窗的底部。
CMDIFrameWnd未實作的協助程式函式中實作此標準的 MDI 命令 OnMDIWindowCmd。 這個協助程式會將命令 Id 對應至 MDI Windows 訊息,並因此共享了大批程式碼。
就像大部分的 MDI 視窗功能表命令,命令已停用,如果沒有任何作用中 MDI 子視窗。
不建議此命令處理常式的自訂。
ID_WINDOW_CASCADE 重疊顯示視窗重疊。
CMDIFrameWnd未實作的協助程式函式中實作此標準的 MDI 命令 OnMDIWindowCmd。 這個協助程式會將命令 Id 對應至 MDI Windows 訊息,並因此共享了大批程式碼。
就像大部分的 MDI 視窗功能表命令,命令已停用,如果沒有任何作用中 MDI 子視窗。
不建議此命令處理常式的自訂。
ID_WINDOW_TILE_HORZ 水平並排顯示視窗。
這個命令中實作CMDIFrameWnd就像 ID_WINDOW_CASCADE、 但不同的 MDI 視窗訊息用於作業。
您的應用程式,您應該選擇預設的並排顯示方向。 您可以藉由變更視窗的 「 並排 」 功能表項目的 ID 為 ID_WINDOW_TILE_HORZ 或 ID_WINDOW_TILE_VERT。
ID_WINDOW_TILE_VERT 垂直並排顯示視窗。
這個命令中實作CMDIFrameWnd就像 ID_WINDOW_CASCADE、 但不同的 MDI 視窗訊息用於作業。
您的應用程式,您應該選擇預設的並排顯示方向。 您可以藉由變更視窗的 「 並排 」 功能表項目的 ID 為 ID_WINDOW_TILE_HORZ 或 ID_WINDOW_TILE_VERT。
分隔器 ID_WINDOW_SPLIT 鍵盤介面。
CView處理此命令的CSplitterWnd的實作。 如果檢視是分隔視窗中的一部分,這個命令會委派給實作函式CSplitterWnd::DoKeyboardSplit。 這會將分隔器放在一種模式可讓鍵盤,將分割,或取消分割分隔視窗中的使用者。
如果檢視不是分隔器時,會停用這項指令。
不建議此命令處理常式的自訂。
ID_APP_ABOUT 會叫用 [關於] 對話方塊。
不會有標準實作應用程式的 [關於] 方塊。 預設值即 AppWizard 建立應用程式會建立自訂的對話方塊類別,您的應用程式,並將之作為您的關於方塊。 即 AppWizard 還要撰寫一般的命令處理常式會處理此命令,並叫用的對話方塊。
您幾乎一定會實作這項指令。
ID_APP_EXIT 結束應用程式。
CWinApp::OnAppExit 處理此命令,藉由傳送WM_CLOSE應用程式的主視窗的訊息。 正在關閉 (提示您輸入不正常的檔案,依此類推) 的應用程式的標準由CFrameWnd的實作。
不建議此命令處理常式的自訂。 覆寫CWinApp::SaveAllModified或CFrameWnd建議您關閉邏輯。
如果您選擇要實作這項指令,我們建議您在使用此命令 id。
ID_HELP_INDEX 清單中的說明主題。HLP 檔。
注意事項 您必須連接這個檔案,您CWinApp-衍生類別的訊息對應,若要啟用這項功能。
CWinApp::OnHelpIndex處理此命令,藉由巨細靡遺地呼叫CWinApp::WinHelp。
不建議此命令處理常式的自訂。
ID_HELP_USING 顯示如何使用說明的說明。
注意事項 您必須連接這個檔案,您CWinApp-衍生類別的訊息對應,若要啟用這項功能。
CWinApp::OnHelpUsing處理此命令,藉由巨細靡遺地呼叫CWinApp::WinHelp。
不建議此命令處理常式的自訂。
ID_CONTEXT_HELP Enters SHIFT F1 說明模式。
注意事項 您必須連接這個檔案,您CWinApp-衍生類別的訊息對應,若要啟用這項功能。
CWinApp::OnContextHelp設定 [說明] 模式游標、 進入強制回應迴圈,並等候使用者選取要取得 [說明] 視窗中處理這個命令。 請參閱技術的附註 28 如需詳細資訊,幫助 MFC 實作上。
不建議此命令處理常式的自訂。
在目前內容的 ID_HELP 提供說明
注意事項 您必須連接這個檔案,您CWinApp-衍生類別的訊息對應,若要啟用這項功能。
CWinApp::OnHelp藉由取得目前應用程式內容的正確說明的內容會處理此命令。 這個方法會處理簡單的 F1 說明,說明在訊息方塊,以此類推。 請參閱技術的附註 28 如需 MFC 的詳細資訊,幫助實作。
不建議此命令處理常式的自訂。
ID_DEFAULT_HELP 會顯示內容的預設說明
注意事項 您必須連接這個檔案,您CWinApp-衍生類別的訊息對應,若要啟用這項功能。
這個命令通常會對應至CWinApp::OnHelpIndex。
如果想要的劃分預設說明與 [說明] 索引,可提供不同的命令處理常式。
ID_NEXT_PANE 會移至下一個窗格
CView處理此命令的CSplitterWnd的實作。 如果檢視是分隔視窗中的一部分,這個命令會委派給實作函式 CSplitterWnd::OnNextPaneCmd。 這會將使用中檢視,以分隔器的下一個窗格。
如果檢視不是分隔或者已經沒有要前往的下一個窗格,則會停用這項指令。
不建議此命令處理常式的自訂。
ID_PREV_PANE 會移至前一個窗格
CView處理此命令的CSplitterWnd的實作。 如果檢視是分隔視窗中的一部分,這個命令會委派給實作函式 CSplitterWnd::OnNextPaneCmd。 這會將使用中檢視前一個窗格分隔器中。
如果檢視不是分隔或者已經移至沒有上一個窗格,則會停用這項指令。
不建議此命令處理常式的自訂。
ID_OLE_INSERT_NEW 插入新的 OLE 物件
目前沒有任何標準的實作,此命令。 您必須實作這個 for 您CView-衍生類別,以在目前的選取範圍中插入新的 OLE 項目或物件。
所有的 OLE 用戶端應用程式應該實作這個命令。 即 AppWizard,OLE 選項時,將建立的基本架構實作 OnInsertObject ,您必須完成檢視類別中。
請參閱 MFC OLE 範例 OCLIENT 這個命令的完整實作的範例。
ID_OLE_EDIT_LINKS 編輯 OLE 連結
COleDocument藉由使用 MFC 所提供的實作標準的 OLE 連結] 對話方塊會處理此命令。 實作此對話方塊便會透過COleLinksDialog類別。 如果目前的文件不包含任何連結,則會停用命令。
不建議此命令處理常式的自訂。
ID_OLE_VERB_FIRST...最後一個識別碼範圍的 OLE 動作
COleDocument目前選取的 OLE 項目/物件所支援的動詞命令會使用這個命令 ID 的範圍。 這必須是一個範圍,因為指定的 OLE 項目/物件型別可以支援零或多個自訂動詞命令。 在您的應用程式功能表中,您應該要有一個功能表項目,識別碼為 ID_OLE_VERB_FIRST。 當程式執行時,就會更新功能表具有適當的功能表動詞命令的描述 (或有多的動詞命令的快顯功能表)。 在 OLE 功能表管理由AfxOleSetEditMenu,在更新命令 UI 處理常式,此命令。
沒有明確的命令處理常式,來處理每個在該範圍內的命令 ID。 COleDocument::OnCmdMsg 會覆寫以設陷這個範圍內的所有命令 Id,將他們變成之以零起始的動詞命令的數字,並啟動該動詞的伺服器 (使用COleClientItem::DoVerb)。
自訂或其他使用此命令 ID 範圍的建議您不要。
ID_VIEW_TOOLBAR 在開啟或關閉切換工具列
CFrameWnd處理這個命令,並更新命令 UI 處理常式切換工具列的可見狀態。 工具列必須是子視窗框架的子視窗識別碼為AFX_IDW_TOOLBAR。 命令處理常式實際上會切換可見性工具列視窗。 CFrameWnd::RecalcLayout用來重繪框架視窗] 工具列,在它的新狀態。 看得見工具列時,更新命令 UI 處理常式會檢查功能表項目。
不建議此命令處理常式的自訂。 如果您想要新增額外的工具列,您會希望複製及修改命令處理常式和更新命令 UI 處理常式,此命令。
ID_VIEW_STATUS_BAR 會開啟或關閉切換狀態列
在提供這個指令CFrameWnd就像 ID_VIEW_TOOLBAR,除非是不同的子視窗識別碼 (AFX_IDW_STATUS_BAR) 會使用。
僅限更新的命令處理常式
數個標準命令 Id 用作為在狀態列中的指標。 這些使用相同更新命令 UI 處理機制的應用程式閒置期間顯示其目前的視覺化狀態。 因為使用者無法選取 (也就是您無法發送狀態列窗格),那麼其實沒有必要讓ON_COMMAND這些命令 Id 的處理常式。
ID_INDICATOR_CAPS : CAP 鎖定指示器。
ID_INDICATOR_NUM : 數字鎖定指示器。
ID_INDICATOR_SCRL : SCRL 鎖定指示器。
ID_INDICATOR_KANA : (僅適用於日文系統) 的假名鎖定指示器。
這三種都以實作 CFrameWnd::OnUpdateKeyIndicator,對應至適當的虛擬按鍵會使用的命令 ID 實作協助程式。 通用實作啟用或停用 (已停用的狀態窗格 = 無文字) CCmdUI取決於是否適當的虛擬按鍵目前已鎖定的物件。
不建議此命令處理常式的自訂。
**ID_INDICATOR_EXT: 「 Ext 」**結束選取的指標。
ID_INDICATOR_OVR: OVer攻擊指示器。
ID_INDICATOR_REC: RECording 指示器。
目前不會有標準實作這些指標。
如果您選擇實作這些指示器,我們建議您使用這些指標識別碼和維護的指標,在您的狀態列中的順序 (也就是以下列順序: 「 ext 」,設限,數字模式 SCRL,OVR,REC)。