菜單欄工具欄狀態(tài)欄_第1頁
菜單欄工具欄狀態(tài)欄_第2頁
菜單欄工具欄狀態(tài)欄_第3頁
菜單欄工具欄狀態(tài)欄_第4頁
菜單欄工具欄狀態(tài)欄_第5頁
已閱讀5頁,還剩42頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

第十八講工具欄和狀態(tài)欄教學(xué)提綱一、教學(xué)內(nèi)容:工具欄和狀態(tài)欄編程二、學(xué)時:兩課時三、教學(xué)目的和要求掌握工具欄的創(chuàng)建方法和步驟,如何將工具欄的功能與菜單的功能相對應(yīng)掌握創(chuàng)建狀態(tài)欄的方法和步驟四、教學(xué)重點和難點重點:工具欄編程難點:狀態(tài)欄編程五.教學(xué)過程提要工具欄編程狀態(tài)欄編程本單小結(jié)內(nèi)容提要§6.2工具欄§6.3狀態(tài)欄§6.2工具欄

工具欄是一系列工具按鈕的組合,也是一種常用的命令輸入方式??梢哉f,工具欄是菜單的一種快捷方式。6.2.1創(chuàng)建工具欄的方法和步驟創(chuàng)建工具欄資源在這里,我們將對上一節(jié)的例子進(jìn)行擴(kuò)充,增加一個工具欄。當(dāng)用鼠標(biāo)選擇工具欄上的某個按鈕時,顯示出【個人資料】對話框。具體步驟如下:步驟一:打開上一節(jié)創(chuàng)建的Dialog例子。步驟二:在工作區(qū)窗口中選擇【ResourceView】選項卡,展開【DialogResources】文件夾,由于我們在用AppWizard生成應(yīng)用程序時,沒有選擇生成工具欄,因此在【DialogResources】文件夾中,找不到Toolbar文件夾。6.2工具欄步驟三:選擇【Insert】菜單中的【Resource】菜單項,在彈出菜單中選擇【Insert】菜單項。系統(tǒng)將彈出【InsertResource】對話框,在對話框中選擇【Toolbar】,單擊【New】按鈕。步驟四:系統(tǒng)將自動在【DialogResounrces】文件夾中添加一個【Toolbar】文件夾,同時在【Toolbar】文件夾中添加了一個名為IDR_TOOLBAR1的文件。屏幕上同時顯示工具欄設(shè)計窗口。步驟四:鼠標(biāo)右鍵單擊【ResourceView】中【Toolbar】文件夾中的IDR_TOOLBAR1項目。在彈出菜單中選擇【Properties】菜單項,系統(tǒng)將彈出工具欄屬性對話框。在屬性對話框中的【ID】框中,我們把ID號修改為IDR_MYTOOLBAR。步驟五:添加按鈕和制作按鈕圖標(biāo)。我們可以利用【Graphic】和【Color】工具欄上提供的設(shè)計工具,根據(jù)自己需要制作按鈕圖標(biāo)。我們用字母R作為按鈕的圖標(biāo)。工具欄按鈕的繪制是一個個分開進(jìn)行的,在畫完一個按鈕后,該按鈕的實際效果立刻顯示出來。

在【ToolbarButtonProperties】工具欄按鈕屬性對話框中,各項的含義如表6.5所示。項目含義IDWidthHeightPrompt用于輸入或從下拉列表中選擇工具欄按鈕的ID號用于輸入工具欄按鈕的寬度,單位是像素用于輸入工具欄按鈕的高度,單位是像素工具欄按鈕文本

注:要使選擇工具欄按鈕的功能與選擇菜單的功能一致時,應(yīng)將工具欄按鈕屬性對象框中的ID號設(shè)置為與某一菜單項的ID號相同。

值得一提的是,在創(chuàng)建工具欄按鈕的過程中,可以進(jìn)行有關(guān)的操作及方法:(1)創(chuàng)建新的工具欄按鈕在新建一個工具欄的過程中,在工具欄的右端會有一個空按鈕,用鼠標(biāo)單擊該按鈕,則該按鈕的周圍有虛的方框包圍,同時在編輯區(qū)內(nèi)顯示出該按鈕,用戶可以在其中繪制圖形。(2)移動工具欄中的按鈕在編輯工具欄的過程中,可以根據(jù)用戶的需要移動工具欄中的按鈕,將某個按鈕放置到所需要的位置上。(3)復(fù)制工具欄中的按鈕在工具欄編輯窗口內(nèi),選擇待移動的工具欄按鈕,在按下Ctrl鍵的同時,將其拖動到所需要的位置。(4)刪除工具欄中的按鈕方法是用鼠標(biāo)拖動該按鈕到工具欄以外的位置。(5)在工具欄中的按鈕間插入空格可以根據(jù)需要在某個按鈕的左邊、右邊或兩邊插入一個空格分隔符,方法是:①如果某按鈕左邊沒有任何空格,拖動該按鈕向右移動并當(dāng)按鈕的右邊界接觸到右邊按鈕時,釋放鼠標(biāo)鍵,則可以此按鈕的左邊插入一個空格,反之,亦然。②如果某按鈕的左邊已有空格而右邊沒有空格,拖動該按鈕向左移動并當(dāng)按鈕的左邊界接觸到左邊按鈕時,釋放鼠標(biāo)鍵,則可在此按鈕右邊插入一個空格。③如果某按鈕的左右兩邊都有空格,拖動該按鈕向右移動并接觸到相鄰按鈕時,則此按鈕左邊的空格保留,按鈕右邊的空格消失。反之亦然。實現(xiàn)工具欄

編碼實現(xiàn)工具欄。具體實現(xiàn)步驟如下:步驟一:在工作區(qū)中窗口中選中【ClassView】選項卡,用鼠標(biāo)右鍵單擊【CmainFrame】,在彈出的菜單中選擇【AddMemberVariable】菜單項,系統(tǒng)將彈出【AddMemberVariable】對話框。步驟二:在【VariableType】欄中輸入類型名稱CToolBar,在【VariableName】欄中輸入變量名稱m_MyDataToolBar。單擊【OK】按鈕繼續(xù)。此時,VisualC++將自動在主框架中的類定義文件MainFrm.h中添加以下聲名:CToolBarm_MyDataToolBar;步驟三:選擇【View】菜單中的【ClassWizard】菜單項,或者直接按Ctrl+R鍵,彈出【MFCClassWizard】對話框。在【Classname】列表框選擇CmainFrame類;在【ObjectIds】列表框中選中CMainFrame;雙擊【Messages】列表欄中的WM_CREATE選項,或者選中WM_CREATE,再單擊【AddFunction】按鈕。在【MemberFunction】欄中將會出現(xiàn)OnCreate()函數(shù)。步驟四:單擊【EditCode】按鈕,ClassWizard將自動在框架類的實現(xiàn)文件MainFrm.cpp中添加成員函數(shù)OnCreate()。在函數(shù)中加入顯示工具欄的代碼。具體代碼如下,其中粗體部分為新添加的代碼。intCMainFrame::OnCreate(LPCREATESTRUCTlpCreateStruct){if(CFrameWnd::OnCreate(lpCreateStruct)==-1) return-1;//TODO:Addyourspecializedcreationcodehereif(!m_MyDataToolBar.Create(this)||!m_MyDataToolBar.LoadToolBar(IDR_MYTOOLBAR)){TRACE0("Failedtocreatedtoolbar\n");return-1;}return0;}步驟五:編譯并運行該程序。當(dāng)單擊工具欄上的新建按鈕,窗口中將彈出【個人資料】對話框。此按鈕的作用和選擇【顯示】菜單中的【個人資料】菜單項的效果是一樣的。說明:(1)在上例創(chuàng)建工具欄的過程中,曾用到了CToolBar類的對象,CToolBar類是由CControlBar類派生而來的,它用于描述工具欄。其中,Create函數(shù)是其成員函數(shù),該函數(shù)的原型為:BOOLCreate(Cwnd*pParentWnd,DWORDwStyle=WS_CHILD|WS_VISIBLE|CBRS_TOP,UNITnID=AFX_IDW_TOOLBAR);其中:參數(shù)pParentWnd是指向父窗口的指針,dwStyle是工具欄的風(fēng)格,nID是子窗口的ID號。取值風(fēng)格CBRS_TOPCBRS_BOTTOMCBRS_NOALIGNCBRS_TOOLTIPSCBRS_SIZE_DYNAMICCBRS_SIZE_FIXEDCBRS_FLOATINGCBRS_FLYBYCBRS_HIDE_INPLACE在框架窗口的頂部在框架窗口的底部不隨父窗口改變尺寸顯示按鈕提示尺寸可改變控件條固定浮動狀態(tài)狀態(tài)欄中顯示按鈕的信息不顯示工具欄表6.6工具欄的部分風(fēng)格(2)TRACE宏

TRACE宏提供了類似與printf函數(shù)的輸出格式,用于將某一信息(即字符串)輸出到Dump的設(shè)備環(huán)境DC中。該宏只在調(diào)試狀態(tài)下工作。TRACE宏的限制是一次最多輸出512個字符。如:inti=1;charsz[]="one";TRACE("Integer=%d,String=%s\n",i,sz);此外,還有TRACE0~TRACE3這樣4個獨立的宏,分別用于輸出純字符串~字符串+3個參數(shù)。它們的原型分別為:TRACE0(exp)TRACE1(exp,param1)TRACE2(exp,param1,param2)TRACE3(exp,param1,param2,param3)如:TRACE0("StartDumpofMyClassmembers:");inti=1;TRACE1("Integer=%d\n",i);//Output:'Integer=1'intj=1;charsz[]="one";TRACE2("Integer=%d,String=%s\n",j,sz);//Output:'Integer=1,String=one'6.2.2實現(xiàn)工具欄的船塢化所謂船塢化工具欄就是可以將工具欄拖動到屏幕的任意位置上,還可以用鼠標(biāo)改變工具欄的大小。下面我們就來實現(xiàn)工具欄的船塢化。首先要通過調(diào)用CControlBar的成員函數(shù)EnableDocking()使工具欄能夠船塢化;然后通過調(diào)用CFrameWnd類的成員函數(shù)EnableDocking()確保邊框窗口能夠船塢化;最后調(diào)用CFrameWnd的成員函數(shù)DockControlBar()使工具欄固定在邊框窗口上。

所有這些工作都在邊框窗口類的成員函數(shù)OnCreate()中完成。這三個函數(shù)的原型為:voidCControlBar::EnableDocking(DWORDdwStyle);voidCFrameWnd::EnableDocking(DWORDdwDockStyle);voidCFrameWnd::DockControlBar(CControlBar*pBar,UINTnDockBarID=0,LPCRECTlpRect=NULL);

其中:參數(shù)dwStyle和dwDockStyle表示工具欄的風(fēng)格,其取值見表6.6,pBar是指向待船塢化的工具欄的指針。

具體代碼如下,其中粗體部分為新添加的代碼。intCMainFrame::OnCreate(LPCREATESTRUCTlpCreateStruct){if(CFrameWnd::OnCreate(lpCreateStruct)==-1) return-1;//TODO:Addyourspecializedcreationcodehereif(!m_MyDataToolBar.Create(this)||!m_MyDataToolBar.LoadToolBar(IDR_MYTOOLBAR)){TRACE0("Failedtocreatedtoolbar\n");return-1;} m_MyDataToolBar.EnableDocking(CBRS_ALIGN_ANY);EnableDocking(CBRS_ALIGN_ANY);DockControlBar(&m_MyDataToolBar);return0;}

編譯并運行該應(yīng)用程序,將看到工具欄已經(jīng)船塢化了??梢杂檬髽?biāo)將它拖動到窗口的任意位置。與工具欄相關(guān)的MFC類MFC的兩個類CToolBar和CToolBarCtrl都是用來為工具條提供操作支,CToolBar繼承了類CControlBar,CToolBarCtrl直接繼承CWnd,CToolBarCtrl能提供更復(fù)雜的功能?!?.3狀態(tài)欄

狀態(tài)欄位于應(yīng)用程序框架窗口的底部,它可以分割成幾個窗格,一般用于顯示一些文本信息,比如:工具欄按鈕的提示信息、CapsLock鍵及NumLock鍵的狀態(tài)等等。1、創(chuàng)建狀態(tài)欄資源下面,我們在前例的基礎(chǔ)上,為應(yīng)用程序Dialog添加一個狀態(tài)欄,用來顯示一個消息區(qū)、一個字符串和NumLock鍵的狀態(tài)。其具體步驟如下:步驟一:打開資源符號對話框。步驟二:在對話框中單擊【New】按鈕,彈出【NewSymbol】對話框,在【Name】欄中填入ID_STATUSBAR_STR,在【Value】欄中的數(shù)字是系統(tǒng)為用戶提供的ID數(shù)值。單擊【OK】按鈕繼續(xù)。6.3狀態(tài)欄步驟三:新添加的ID信息將會出現(xiàn)在【ResourceSymbols】對話框的列表中。單擊【Close】按鈕關(guān)閉【ResourceSymbols】對話框。此時完成創(chuàng)建ID的工作。步驟四:在工作區(qū)窗口中選擇【ResourceView】選項卡,雙擊【StringTable】文件夾中的【StringTable】選項,窗口中將顯示出串表編輯器。在編輯器中單擊鼠標(biāo)右鍵,在彈出的菜單中選擇【NewString】菜單項。步驟五:系統(tǒng)彈出【StringProperties】對話框,在【ID】框中選擇ID_STATUSBAR_STR項,在【Caption】框中輸入字符串“測試狀態(tài)欄!”,按【Enter】鍵確認(rèn)。2、實現(xiàn)狀態(tài)欄實現(xiàn)狀態(tài)欄的具體步驟如下:步驟一:在工作區(qū)窗口中選擇【ClassView】選項卡,用鼠標(biāo)右鍵單擊【CMainFrame】選項,在彈出菜單中選擇【AddMemberVariable】菜單項。彈出【AddMemberVariable】對話框,在【VariableType】欄中輸入類型名稱CStatusBar,在【VariableName】欄中輸入類型名稱為m_MyStatusBar。單擊【OK】按鈕繼續(xù)。此時,VisualC++將自動在主框架的類定義文件MainFrm.h中添加以下聲明:CStatusBarm_MyStatusBar;步驟二:在MainFrm.cpp文件中加入數(shù)組indicators的定義,具體代碼如下,其中粗體部分為新增加的代碼。//CMainFrameIMPLEMENT_DYNCREATE(CMainFrame,CFrameWnd)BEGIN_MESSAGE_MAP(CMainFrame,CFrameWnd)//{{AFX_MSG_MAP(CMainFrame)ON_WM_CONTEXTMENU()ON_WM_CREATE()//}}AFX_MSG_MAPEND_MESSAGE_MAP()staticUINTindicators[]={ID_SEPARATOR, //狀態(tài)行指示器

ID_STATUSBAR_STR,ID_INDICATOR_NUM,};步驟三:在文件MainFrm.app中對函數(shù)OnCreate()進(jìn)行修改,增加狀態(tài)欄的創(chuàng)建代碼。具體代碼如下,其中粗體部分為新增加的代碼。intCMainFrame::OnCreate(LPCREATESTRUCTlpCreateStruct){if(CFrameWnd::OnCreate(lpCreateStruct)==-1)return-1;//TODO:Addyourspecializedcreationcodehereif(!m_MyDataToolBar.Create(this)||!m_MyDataToolBar.LoadToolBar(IDR_MYTOOLBAR)){TRACE0("Failedtocreatedtoolbar\n"); return-1; } m_MyDataToolBar.EnableDocking(CBRS_ALIGN_ANY);EnableDocking(CBRS_ALIGN_ANY);DockControlBar(&m_MyDataToolBar);if(!m_MyStatusBar.Create(this)||!m_MyStatusBar.SetIndicators(indicators, sizeof(indicators)/sizeof(UINT))){TRACE0("Failedtocreatedstatusbar\n");return-1;//failtocreate}return0;}步驟四:編譯并運行此應(yīng)用程序,將會看到在原來程序的基礎(chǔ)之上,在窗口的最下端增加了一個狀態(tài)欄。說明:(1)在上例創(chuàng)建狀態(tài)欄的過程中,曾用到了CStatusBar類的對象,CStatusBar是VisualC++的MFC類庫中的一個類,它用于描述狀態(tài)欄,CStatusBar類是由CControlBar類派生而來的。其中,Create函數(shù)是其成員函數(shù),該函數(shù)的原型為:

BOOLCreate(CWnd*pParentWnd, DWORDdwStyle=WS_CHILD|WS_VISIBLE |CBRS_BOTTOM, UINTnID=AFX_IDW_STATUS_BAR);其中:pParentWnd是指向狀態(tài)欄父窗口的指針,dwStyle是狀態(tài)欄的風(fēng)格,nID是子窗口的ID號,表6.7中列出了決定狀態(tài)欄風(fēng)格的幾種常用的取值及對應(yīng)的風(fēng)格。

表6.7dwStyle的取值及對應(yīng)的狀態(tài)欄的風(fēng)格(2)在MainFrm.cpp文件中加入的數(shù)組indicators的定義:staticUINTindicators[],用于描述狀態(tài)欄中所包含的內(nèi)容。如果在利用AppWizard向?qū)?chuàng)建SDI或MDI應(yīng)用程序框架中的第4步中,選擇了“Initialstatusbar”時,則向?qū)詣釉贛ainFrm.cpp文件中加入數(shù)組indicators的定義。向?qū)傻娜笔〉膇ndicator數(shù)組包含了四個元素,它們是ID_SEPARATOR、ID_INDICATOR_CAPS、ID_INDICATOR_NUM和ID_INDICATOR_SCRL。取值風(fēng)格CBRS_TOPCBRS_BOTTOMCBRS_NOALIGN在框架窗口的頂部在框架窗口的底部當(dāng)父窗口改變尺寸以后不隨之變動(3)要在狀態(tài)欄的窗格中顯示文本信息,可以采用以下三種方法:①調(diào)用CWnd::SetWindowText函數(shù)更新信息行窗格中的文本。由于狀態(tài)欄也是一種窗口,所以在程序中可以直接調(diào)用該函數(shù)。如:若狀態(tài)欄變量為m_wndStatusBar,則m_wndStatusBar.SetWindowText(“新修改的信息”)語句將在信息行窗格中顯示“新修改的信息”。②手動處理狀態(tài)欄的MAND_UI更新信息,并在處理函數(shù)中調(diào)用CCmdUI::SetText函數(shù),該函數(shù)的原型為:virtualvoidSetText(LPCTSTRlpszText);其中:參數(shù)lpszText是一個指向字符串的指針。③調(diào)用函數(shù)CStatusBar::SetPaneText與CStatusBar::GetPaneText可以設(shè)置或獲得任何窗格(包括信息行窗格)中的文本。此函數(shù)的原型為:BOOLSetPaneText(intnIndex,LPCTSTRlpszNewText,BOOLbUpdate=TRUE);CStringGetPaneText(intnIndex)const;其中,參數(shù)nIndex是待設(shè)置的窗格位置索引號(第1個窗格的位置索引為0),lpszNewText表示要顯示的字符串,若參數(shù)bUpdate的值為TRUE,系統(tǒng)自動更新顯示的結(jié)果。(4)調(diào)用CStatusBar::CommandToIndex可以獲得指定資源ID號所在窗格的位置索引號,該函數(shù)的原型為:intCommandToIndex(UINTnIDFind)const;其中:參數(shù)nIDFind是狀態(tài)欄中某一資源ID號。(5)調(diào)用函數(shù)CStatusBar::SetPaneInfo與CStatusBar::GetPaneInfo可設(shè)置或獲得窗格的長度、風(fēng)格等信息,它們的函數(shù)原型為:voidSetPaneInfo(intnIndex,UINTnID,UINTnStyle,intcxWidth);voidGetPaneInfo(intnIndex,UINT&nID,UINT&nStyle,int&cxWidth)const;其中:參數(shù)nIndex表示要設(shè)置的狀態(tài)欄窗格的索引號,nID用來為狀態(tài)欄窗格指定新的資源ID號,cxWidth表示窗格的像素寬度,nStyle表示狀態(tài)欄窗格的風(fēng)格類型,用來指定窗格的外觀,如:SBPS_POPOUT表示窗格是凸起來的。具體見表6.8。風(fēng)格取值風(fēng)格SBPS_NOBORDERSSBPS_POPOUTSBPS_DISABLEDSBPS_STRETCH

SBPS_NOMAL窗格四周沒有3D邊框反顯邊框使文字凸起顯示禁用窗格,不顯示文本拉伸窗格,交填充窗格不用的空白空間。但狀態(tài)欄中只能有一個窗格具有這種風(fēng)格普通窗格,沒有“拉伸”、“3D邊框”、“文字凸起顯示”等效果表6.8狀態(tài)欄中各窗格的風(fēng)格取值及對應(yīng)風(fēng)格(6)調(diào)用CStatusBar::SetPaneStyle與CStatusBar::GetPaneStyle可分別用來設(shè)置或獲得狀態(tài)欄窗格的風(fēng)格,二者的原型如下:UINTGetPaneStyle(intnIndex)const;voidSetPaneStyle(intnIndex,UINTnStyle);其中:參數(shù)nIndex是狀態(tài)欄中某一窗格的位置索引號,nStyle為狀態(tài)欄中窗格的風(fēng)格。3、進(jìn)一步完善狀態(tài)欄現(xiàn)在,我們在剛才添加狀態(tài)欄例子的基礎(chǔ)上進(jìn)行修改。當(dāng)用戶選擇“關(guān)于”菜單項時,彈出“字體對話框”,當(dāng)單擊“確定”按鈕關(guān)閉此對話框后,在狀態(tài)欄上原來顯示文本測試狀態(tài)欄的空格中顯示“您已經(jīng)查看過字體對話框!”,按照下面的方法進(jìn)行操作。步驟一:選擇【View】菜單中的【ClassWizard】菜單項。彈出【MFCClassWizard】對話框,在【Classname】列表中選擇類CMainFrame,在【ObjectIDs】列表中選擇ID_APP_ABOUT;右邊的【Messages】欄中將出現(xiàn)COMMAND和MAND_UI,雙擊COMMAND選項。將彈出AddMemberFunction對話框。步驟二:接受系統(tǒng)缺省的函數(shù)名稱OnAppAbout,單擊【OK】按鈕,返回MFCClassWizard對話框。這時在MFCClassWizard對話框中的【Memberfunctions】框中增加了一個函數(shù)OnAppAbout。步驟三:單擊【EditCode】按鈕,在代碼編輯窗口中打開OnAppAbout函數(shù)。在編輯此函數(shù)之前,首先要在MainFrm.cpp文件中添加一個#include語句。具體代碼如下,其中粗體部分為新增加的代碼。//MainFrm.cpp:implementationoftheCMainFrameclass//#include"stdafx.h"#include"Dialog.h"#include"MainFrm.h"#include"MydataDialog.h"#ifdef_DEBUG#definenewDEBUG_NEW#undefTHIS_FILEstaticcharTHIS_FILE[]=__FILE__;#endif步驟四:在代碼編輯窗口中,編輯函數(shù)OnAppAbout()。具體代碼如下,其中粗體部分為新增加的代碼。voidCMainFrame::OnAppAbout(){//TODO:AddyourcommandhandlercodehereCMydataDialogdlg;if(dlg.DoModal()==IDOK){CClientDCdc(this);SIZEsize=dc.GetTextExtent("您已經(jīng)查看過個人資料對話框!");intmandToIndex(ID_STATUSBAR_STR);m_MyStatusBar.SetPaneInfo(index,ID_STATUSBAR_STR,SBPS_POPOUT,size.cx);說明:在此函數(shù)中,首先生成了一個字體對話框的實例,并且顯示為有模式對話框。當(dāng)用戶單擊【確定】按鈕退出此對話框時,要改變狀態(tài)欄的字符串顯示。首先調(diào)用函數(shù)GetTextExtent()來獲得字符串的長度,然后調(diào)用CommandToIndex()函數(shù)獲得窗格的索引,再通過調(diào)用函數(shù)SetPaneInfo()來設(shè)置窗格的長度、風(fēng)格等信息。在此例中,我們使用了風(fēng)格SBPS_POPOUT,它使創(chuàng)建的窗格看起來是從狀態(tài)欄中凸出來的。最后調(diào)用函數(shù)SetPaneText()來顯示文本內(nèi)容。步驟五:編譯并運行此應(yīng)用程序。m_MyStatusBar.SetPaneText(index,_T("您已經(jīng)查看過個人資料對話框!"),TRUE);}}在應(yīng)用程序中,要實現(xiàn)菜單的功能,其步驟和方法是先利用菜單編輯器建立菜單資源,然后編寫菜單命令的MAND消息映射函數(shù)及相應(yīng)代碼。在MFC框架中,菜單命令消息是按照一定的順序進(jìn)行傳遞的。

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論