首頁 考試吧論壇 Exam8視線 考試商城 網(wǎng)絡(luò)課程 模擬考試 考友錄 實(shí)用文檔 求職招聘 論文下載
2012中考 | 2012高考 | 2012考研 | 考研培訓(xùn) | 在職研 | 自學(xué)考試 | 成人高考 | 法律碩士 | MBA考試
MPA考試 | 中科院
四六級 | 職稱英語 | 商務(wù)英語 | 公共英語 | 托福 | 托業(yè) | 雅思 | 專四專八 | 口譯筆譯 | 博思
GRE GMAT | 新概念英語 | 成人英語三級 | 申碩英語 | 攻碩英語 | 職稱日語 | 日語學(xué)習(xí) |
零起點(diǎn)法語 | 零起點(diǎn)德語 | 零起點(diǎn)韓語
計(jì)算機(jī)等級考試 | 軟件水平考試 | 職稱計(jì)算機(jī) | 微軟認(rèn)證 | 思科認(rèn)證 | Oracle認(rèn)證 | Linux認(rèn)證
華為認(rèn)證 | Java認(rèn)證
公務(wù)員 | 報(bào)關(guān)員 | 銀行從業(yè)資格 | 證券從業(yè)資格 | 期貨從業(yè)資格 | 司法考試 | 法律顧問 | 導(dǎo)游資格
報(bào)檢員 | 教師資格 | 社會工作者 | 外銷員 | 國際商務(wù)師 | 跟單員 | 單證員 | 物流師 | 價格鑒證師
人力資源 | 管理咨詢師 | 秘書資格 | 心理咨詢師 | 出版專業(yè)資格 | 廣告師職業(yè)水平 | 駕駛員
網(wǎng)絡(luò)編輯 | 公共營養(yǎng)師 | 國際貨運(yùn)代理人 | 保險從業(yè)資格 | 電子商務(wù)師 | 普通話 | 企業(yè)培訓(xùn)師
營銷師
衛(wèi)生資格 | 執(zhí)業(yè)醫(yī)師 | 執(zhí)業(yè)藥師 | 執(zhí)業(yè)護(hù)士
會計(jì)從業(yè)資格考試會計(jì)證) | 經(jīng)濟(jì)師 | 會計(jì)職稱 | 注冊會計(jì)師 | 審計(jì)師 | 注冊稅務(wù)師
注冊資產(chǎn)評估師 | 高級會計(jì)師 | ACCA | 統(tǒng)計(jì)師 | 精算師 | 理財(cái)規(guī)劃師 | 國際內(nèi)審師
一級建造師 | 二級建造師 | 造價工程師 | 造價員 | 咨詢工程師 | 監(jiān)理工程師 | 安全工程師
質(zhì)量工程師 | 物業(yè)管理師 | 招標(biāo)師 | 結(jié)構(gòu)工程師 | 建筑師 | 房地產(chǎn)估價師 | 土地估價師 | 巖土師
設(shè)備監(jiān)理師 | 房地產(chǎn)經(jīng)紀(jì)人 | 投資項(xiàng)目管理師 | 土地登記代理人 | 環(huán)境影響評價師 | 環(huán)保工程師
城市規(guī)劃師 | 公路監(jiān)理師 | 公路造價師 | 安全評價師 | 電氣工程師 | 注冊測繪師 | 注冊計(jì)量師
化工工程師 | 材料員
繽紛校園 | 實(shí)用文檔 | 英語學(xué)習(xí) | 作文大全 | 求職招聘 | 論文下載 | 訪談 | 游戲
計(jì)算機(jī)等級考試

2012年計(jì)算機(jī)等考二級C++備考筆記(一)

  菜單欄,工具欄,狀態(tài)欄是組成Windows程序圖形界面的三個主要元素。大多數(shù)的Windows應(yīng)用程序都提供了菜單,作為用戶和程序之間的一種交互途徑。

  菜單欄

  在設(shè)置菜單欄的菜單項(xiàng)的時候,Pop-up屬性的為彈出菜單,這種菜單不能響應(yīng)命令,沒有ID號。

  菜單命令的路由

  相應(yīng)菜單項(xiàng)命令的順序是:視類(View),文檔類(Doc),框架類(Frame),應(yīng)用程序類(App)。

  Windows消息的分類

  標(biāo)準(zhǔn)消息:除了WM_COMMAND消息之外,所有以WM開頭的消息都是標(biāo)準(zhǔn)消息,從CWnd派生的類都可以響應(yīng)這類消息。

  命令消息:來至菜單、加速鍵和工具欄按鈕的消息,這類消息都是以WM_COMMAND形式呈現(xiàn),在MFC中,通過菜單項(xiàng)的標(biāo)示ID來區(qū)分不同的命令消息,在SDK中,通過消息的wParam參數(shù)標(biāo)示,從CCmdTarget派生的類都可以接收這類消息。

  通告消息:有控件產(chǎn)生的消息,例如按鈕的單擊,列表框的選擇等都會產(chǎn)生這類消息,目的是向其父窗口通知事件的發(fā)生。這類消息以WM_COMMAND形式發(fā)送,從CCmdTarget派生的類都可以接收這類消息。

  CWnd派生于CCmdTarget,從CWnd派生的類可以接收所以類型的消息(View,Frame),其他從CCmdTarget派生的類只能接收命令消息和通告消息(Doc,App)。

  基本菜單操作

  Pop-up0 Pop-up1 Pop-up2 Pop-up3 …

  0-0 1-0 2-0 3-0 …

  0-1 1-1 2-1 3-1 …

  0-2 1-2 2-2 3-2 …

  可以通過CWnd的成員函數(shù)GetMenu來獲取指向菜單欄的指針,對菜單子項(xiàng)的訪問可以通過菜單的索引標(biāo)識來實(shí)現(xiàn)。

  操作一個菜單項(xiàng)的2種實(shí)例

  1 GetMenu()->GetSubMenu(0)->CheckMenuItem(0,MF_BYPOSITION | MF_CHECKED);

  2 GetMenu()->GetSubMenu(0)->CheckMenuItem(ID_FILE_OPEN,MF_BYCOMMAND | MF_CHECKED);

  MSDN中關(guān)于MF_BYCOMMAND 和MF_BYPOSITION的解釋

  MF_BYCOMMAND Specifies that the parameter gives the command ID of the existing menu item. This is the default.

  MF_BYPOSITION Specifies that the parameter gives the position of the existing menu item. The first item is at position 0.

  GetSubMenu有很多成員函數(shù),用于菜單的操作。

  快捷菜單

  工程-添加到工程-Components and Controls,從這里可可以選擇VC提供的一些組件和控件,添加一個POPUP MENU,選擇所屬于View類,此時View類中便添加了一個OnConTextMenu函數(shù)。

  01 void CMenuView::OnConTextMenu(CWnd*, CPoint point)

  02 {

  03 // CG: This block was added by the Pop-up Menu component

  04 {

  05 if (point.x == -1 && point.y == -1){

  06 //keystroke invocation

  07 CRect rect;

  08 GetClientRect(rect);

  09 ClientToScreen(rect);

  10 point = rect.TopLeft();

  11 point.Offset(5, 5);

  12 }

  13 CMenu menu;

  14 VERIFY(menu.LoadMenu(CG_IDR_POPUP_MENU_VIEW));

  15 CMenu* pPopup = menu.GetSubMenu(0);

  16 ASSERT(pPopup != NULL);

  17 CWnd* pWndPopupOwner = this;

  18 while (pWndPopupOwner->GetStyle() & WS_CHILD)

  19 pWndPopupOwner = pWndPopupOwner->GetParent();

  20 pPopup->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, point.y,

  21 pWndPopupOwner);

  22 }

  23 }

  運(yùn)行之后,在View類區(qū)域右鍵,會出現(xiàn)一個彈出窗口。

1 2  下一頁

  相關(guān)推薦:

  2012年計(jì)算機(jī)等考四級數(shù)據(jù)庫工程師備考筆記匯總

  2012年計(jì)算機(jī)等級考試二級VB重點(diǎn)知識匯總

  2012年下半年計(jì)算機(jī)等級考試報(bào)名時間及入口匯總

文章搜索
版權(quán)聲明:如果計(jì)算機(jī)等級考試網(wǎng)所轉(zhuǎn)載內(nèi)容不慎侵犯了您的權(quán)益,請與我們聯(lián)系800@exam8.com,我們將會及時處理。如轉(zhuǎn)載本計(jì)算機(jī)等級考試網(wǎng)內(nèi)容,請注明出處。