




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、教師教師:劉慶劉慶Copyright by ARTCOM PT All rights reserved.Company LogoLogo1使用高使用高級級WIN32WIN32控件豐富界面控件豐富界面教師教師:劉慶劉慶Copyright by ARTCOM PT All rights reserved.Company LogoLogo2l本章主要知識點:l窗體的菜單應用l窗體的工具欄的使用l窗體的狀態欄的使用教師教師:劉慶劉慶Copyright by ARTCOM PT All rights reserved.Company LogoLogo3窗體菜窗體菜單單使用案例使用案例教師教師:劉慶劉慶C
2、opyright by ARTCOM PT All rights reserved.Company LogoLogo4窗體菜窗體菜單單使用案例使用案例l1、菜單資源的添加:在ResourcView卡中選擇操作插入資源MENUl2、菜單資源的編輯如同一般菜單的編輯方式樣l3、與菜單有關的結構體類型:MENUITEMINFO教師教師:劉慶劉慶Copyright by ARTCOM PT All rights reserved.Company LogoLogo5ltypedef struct tagMENUITEMINFO l UINT cbSize; /結構的大小,字節 l UINT fMask;
3、/重新獲取或設置成員 l UINT fType; /菜單項類型 l UINT fState; /菜單項的狀態. l UINT wID; /應用程序定義16位的值來識別那個菜單項 l HMENU hSubMenu; /下拉菜單或相關聯的子菜單的菜單項的句柄 l HBITMAP hbmpChecked; /如果條目被選中,這個顯示項是位圖的句柄 l HBITMAP hbmpUnchecked; l DWORD dwItemData; /應用程序定義的菜單項相關聯的值l LPTSTR dwTypeData; /菜單項的內容 l UINT cch; /菜單項文本的長度息 l MENUITEMINFO,
4、 FAR *LPMENUITEMINFO; 教師教師:劉慶劉慶Copyright by ARTCOM PT All rights reserved.Company LogoLogo6lfMaskfMask重新重新獲獲取或取或設設置成置成員員, ,這個這個成成員員可以使用一可以使用一個個或多或多個這個這些些值值MIIM_CHECKMARKS MIIM_CHECKMARKS 重新重新獲獲取或取或設設置置hbmpCheckedhbmpChecked和和hbhbmpUncheckedmpUnchecked成成員員MIIM_DATA MIIM_DATA 重新重新獲獲取或取或設設置置dwItemDatad
5、wItemData成成員員 MIIM_ID MIIM_ID 重新重新獲獲取或取或設設置置wIDwID成成員員MIIM_STATE MIIM_STATE 重新重新獲獲取或取或設設置置fStatefState成成員員MIIM_SUBMENU MIIM_SUBMENU 重新重新獲獲取或取或設設置置hSubMenuhSubMenu成成員員MIIM_TYPE MIIM_TYPE 重新重新獲獲取或取或設設置置fTypefType和和dwTypeDatadwTypeData成成員員教師教師:劉慶劉慶Copyright by ARTCOM PT All rights reserved.Company Logo
6、Logo7lfStatel 菜單項的狀態.這個成員可以是一個或多個的這些值:l MFS_CHECKED 復選的菜單項.至于更多關于菜單項選中的信息,看hbmpChecked成員.l MFS_DEFAULT 指定那個是默認的菜單項。一個菜單僅僅只可以包含一個默認的菜單項,粗體顯示那個。l MFS_DISABLED 禁止菜單項所以它不能被選擇.但是不使它變灰.l MFS_ENABLED 激活菜單項所以它可以被選擇。這是默認的狀態.l MFS_GRAYED 禁止菜單項和變灰它,所以它不可以被選擇.l MFS_HILITE 加亮菜單項l MFS_UNCHECKED 取消復選菜單項.至于更多關于菜單項u
7、nchecked信息,看hbmpUnchecked成員變量l MFS_UNHILITE 移除來自菜單項的加亮區.這是默認狀態.教師教師:劉慶劉慶Copyright by ARTCOM PT All rights reserved.Company LogoLogo8l4、菜單中相關的成員函數的使用l菜單的使用過程:1、添加菜單資源2、定義菜單句柄 HMENU3、加載菜單資源4、設置窗體菜單l加載菜單LoadMenulHMENU LoadMenu(HINSTANCE hlnstance,LPCTSTR lpMenuName);lhlnstance:含有被加載菜單資源的事例模塊的句柄。 lLpMen
8、uName:指向含有菜單資源名的以空結束的字符串的指針。l返回值:如果函數調用成功,返回值是菜單資源句柄;如果函數調用失敗,返回值是NULL。教師教師:劉慶劉慶Copyright by ARTCOM PT All rights reserved.Company LogoLogo9l設置窗體菜單SetMenu lBOOL SetMenu(HWND hWnd,HMENU hMenu);lhWnd:菜單被分配到其中的窗口的句柄。lhMenu:新菜單的句柄。如果菜單參數為NULL,則窗口的當前菜單被刪除。CMenu:GetMenuItemInfoBOOL GetMenuItemInfo(UINT nI
9、DItem, LPMENUITEMINFO lpMenuItemInfo, BOOL ByPos=FALSE)nIDItem 要獲取信息菜單項的標識符或位置。llpMenuItemInfo 指向MENUITEMINFO結構的指針,如聯機文檔“平臺SDK”中所述,它包含了菜單的有關信息。l ByPos 該值指定了nIDItem的意義。缺省情況下,ByPos是FALSE,它指定uItem為菜單項標識符。若ByPos沒有設置為FALSE,那么它標識了菜單項的位置。 教師教師:劉慶劉慶Copyright by ARTCOM PT All rights reserved.Company LogoLogo
10、10彈彈出式菜出式菜單單使用使用實實例例l彈出式菜單和普通窗體菜單的加載和屬性設置的方法完全相同l在窗體上右擊鼠標,通??梢l“WM_CONTEXTMENU”消息,可在此消息中處理函數顯示彈出式菜單l彈出式菜單函數:TrackPopupMenu lBOOL TrackPopupMenu(HMENU hMenu,UINT uFlags,int x,int y,int nReserved,HWND hWnd,CONST RECT* prcRect); 教師教師:劉慶劉慶Copyright by ARTCOM PT All rights reserved.Company LogoLogo11lhMe
11、nu:被顯示的快捷菜單的句柄。此句柄可為調用CreatePopupMenu創建的新快捷菜單的句柄,也可以為調用GetSubMenu取得的與一個已存在菜單項相聯系的子菜單的句柄。 luFlags:一種指定功能選項的位標志。用下列標志位之一來確定函數如何水平放置快捷菜單: lTPM_CENTERALIGN:若設置此標志,函數將按參數x指定的坐標水平居中放置快捷菜單。 lTPM_LEFTALIGN:若設置此標志,函數使快捷菜單的左邊界與由參數X指定的坐標對齊。 lTPM_RIGHTALIGN:若設置此標志,函數使快捷菜單的右邊界與由參數X指定的坐標對齊。 l用下列標志位之一來確定函數如何垂直放置快捷
12、菜單: lTPM_BOTTOMALIGN:若設置此標志,函數使快捷菜單的下邊界與由參數y指定的坐標對齊。 lTPM_TOPALIGN:若設置此標志,函數使快捷菜單的上邊界與由參數y指定的坐標對齊。 lTPM_VCENTERALIGN;若設置此標志,函數將按參數y指定的坐標垂直居中放置快捷菜單 l用下列標志位之一來確定在菜單沒有父窗口的情況下用戶的選擇: lTPM_NONOTIFY:若設置此標志,當用戶單擊菜單項時函數不發送通知消息。 lTPM_RETURNCMD;若設置此標志;函數將用戶所選菜單項的標識符返回到返回值里。 l(補充:當TrackPopupMenu的返回值大于0,就說明用戶從彈出
13、菜單中選擇了一個菜單。以返回的ID號為參數wParam的值,程序給自己發送了一個WM_SYSCOMMAND消息) l用下列標志位之一來確定在快捷菜單跟蹤哪一個鼠標鍵: lTPM_LEFTBUTTON:若設置此標志,用戶只能用鼠標左鍵選擇菜單項。 lTPM_RIGHTBUTTON:若設置此標志,用戶能用鼠標左、右鍵選擇菜單項。 教師教師:劉慶劉慶Copyright by ARTCOM PT All rights reserved.Company LogoLogo12lModifyMenu l函數功能:該參數修改已存在的菜單項,并指定菜單項的內容、外觀和性能。 lBOOL ModifyMenu(H
14、MENU hMnu,UINT uPosition,UINT uFlags,UINT uIDNewltem,LPCTSTR IpNewltem); lhMnu:將被修改的菜單的句柄。 luPosition:指定將被修改的菜單項,其含義由參數UFlags決定。lUFlags:指定控制參數uPosition的解釋的標志、菜單項的內容、外觀和性能。 MF_BYCOMMAND:表示uPostion給出菜單項的標識符。如果MF_BYCOMMAND和MF_BYPOSITION都沒被指定則MF_BYCOMMAND為缺省的標志。 MF_BYPOSITION:表示uPosition給出菜單項基于零的相對位置。lU
15、IDNewltem:指定被修改菜單項的標識符,或者當參數uFlags設置為MF_POPUP時,指定下拉式菜單或子菜單的句柄。 llpNewltem:指定被修改菜單項的內容。其含義依賴于參數UFlags是否包含標志MF_BITMAP,MF_OWNERDRAW或MF_STRING。 教師教師:劉慶劉慶Copyright by ARTCOM PT All rights reserved.Company LogoLogo13lCheckMenuItem l函數功能:該函數取得與指定菜單項相聯系的菜單標志。如果該菜單項打開了一個子菜單,該函數也返回子菜單里的菜單項數。 lDWORDCheckMenuIt
16、em(HMENUhmenu, UINTuIDCheckItem, UINTuCheck);lhmenu:含有其菜單項的標志將被提取得的菜單的句柄。 luIDCheckItem:制定要修改的菜單項。 luCheck:表示標記的狀態。此參數可取下列值之一: l MF_BYCOMMANDMF_BYCOMMAND:表示參數uId給出菜單項的標識符。如果MF_BYCOMMAND和MF_BYPOSITION都沒被指定,則MF_BYCOMMAND是缺省值。 l MF_BYPOSITIONMF_BYPOSITION:表示參數uId給出菜單項相對于零的位置。 l MF_CHECKEDMF_CHECKED:放置選
17、取標記于菜單項旁邊(只用于下拉式菜單、子菜單或快捷菜單)。 l MF_DISABLEDMF_DISABLED:使菜單項無效。MF_GRAYED:使菜單項無效并交灰。MF_HILITE:加亮菜單項。 l MF_MENUBARBREAKMF_MENUBARBREAK:對下拉式菜單、子菜單和快捷菜單,新列和舊列由垂直線隔開,其余功能同MF_MENUBREAK標志。 l MF_MENUBREAKMF_MENUBREAK:將菜單項放于新行(對菜單條)或無分隔列地放于新列(對下拉式菜單、子菜單或快捷菜單)。 l MF_SEPARATORMF_SEPARATOR:創建一個水平分隔線(只用于下拉式菜單、子菜單
18、或快捷菜單)。 教師教師:劉慶劉慶Copyright by ARTCOM PT All rights reserved.Company LogoLogo14工具工具欄欄使用使用實實例例教師教師:劉慶劉慶Copyright by ARTCOM PT All rights reserved.Company LogoLogo15l工具欄的封裝類:CToolBarl使用工具欄的步驟:l1、創建工具欄 CreateExl2、加載工具欄 LoadToolBarlvirtual BOOL CreateEx( CWnd* pParentWnd, DWORD dwCtrlStyle = TBSTYLE_FLAT
19、, DWORD dwStyle = WS_CHILD | WS_VISIBLE | CBRS_ALIGN_TOP)lBOOL LoadToolBar( LPCTSTR lpszResourceName ); l函數CWnd:RepositionBars() l功能是將可用的客戶區區域信息放到消息WM_SIZEPARENT的消息參數里,然后枚舉本窗口的所有子窗口,給每個子窗口 都發送這個消息,每個響應這個消息的子窗口都會把可用客戶區切去一塊。最后把那個特定的子窗口的尺寸和位置調整到剛好放在最后剩下的可用區域里。 教師教師:劉慶劉慶Copyright by ARTCOM PT All rights
20、 reserved.Company LogoLogo16256256色工具色工具欄欄使用使用實實例例教師教師:劉慶劉慶Copyright by ARTCOM PT All rights reserved.Company LogoLogo17l本章要點:l將256色以上的圖片粘貼到工具欄中l1、插入一個工具欄l2、插入位圖l3、在程序中處理圖像的加載教師教師:劉慶劉慶Copyright by ARTCOM PT All rights reserved.Company LogoLogo18lBOOL Create( int cx, int cy, UINT nFlags, int nInitial
21、, int nGrow ); lnFlags:lILC_COLOR24 ILC_COLOR24 :圖片為24位真彩色lILC_MASKILC_MASK:添加的:添加的圖圖片片顯顯示示時時要要讓讓指定的指定的顏顏色透明色透明lnInitial:列表的初始大小lnGrow:動態調整大小時的增量lAdd :將位圖添加到圖片列表,圖片列表按創建時指定的大小來切分圖片lint Add( CBitmap* pbmImage, COLORREF crMask ); 教師教師:劉慶劉慶Copyright by ARTCOM PT All rights reserved.Company LogoLogo19狀態
22、欄輸狀態欄輸出信息出信息實實例例教師教師:劉慶劉慶Copyright by ARTCOM PT All rights reserved.Company LogoLogo20l狀態欄實際上是個窗口,一般分為幾個窗格,每個窗格顯示不同的信息。 lAppWizard會為應用程序自動創建一個狀態欄,該狀態欄包括幾個窗格,分別用來顯示狀態欄提示和CAPS LOCK、NUM LOCK 、SCROLL LOCK鍵的狀態。在MFC中,狀態欄的功能由CStatusBar類實現。l創建一個狀態欄需要以下幾個步驟:l構建一個CStatusBar對象。l調用CStatusBar:Create創建狀態欄窗口。l調用CS
23、tatusBar:SetIndicators函數分配窗格,并將狀態欄的每一個窗格與一個字符串ID相聯系。教師教師:劉慶劉慶Copyright by ARTCOM PT All rights reserved.Company LogoLogo21lstatic UINT indicators =ID_SEPARATOR, / 狀態行指示器ID_INDICATOR_CAPS,ID_INDICATOR_NUM,ID_INDICATOR_SCRL,;教師教師:劉慶劉慶Copyright by ARTCOM PT All rights reserved.Company LogoLogo22ToolTipToolTip顯顯示即示即時時提示提示實實例例lCToolTipCtrl:UpdateTipTextvoid UpdateTipText( LPCTSTR lpszText, CWnd* pWnd, UINT nIDTool = 0 );void
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 隧道機械化施工中的設備管理策略與實施計劃制定研究考核試卷
- 鉛酸電池的循環利用與環保技術考核試卷
- 貨運火車站物流企業績效管理體系構建與實施考核試卷
- 陶瓷藝術工作室運營與管理考核試卷
- 銅冶煉廠的安全管理體系構建與運行考核試卷
- 小兒常見眼部疾病診療與預防
- 食品營養與衛生
- 腦血管疾病的營養管理
- 呼吸科評分量表臨床應用與管理規范
- Glisoprenin-A-生命科學試劑-MCE
- 校長在2025暑假前期末教師大會上的講話:靜水深流腳踏實地
- (2025)全國“安全生產月活動”《安全知識》競賽試題庫(附含答案)
- (2025)黨校入黨積極分子培訓結業考試題庫與答案
- 2025年中國超薄柔性玻璃(UTG)行業深度分析、投資前景及發展趨勢預測報告(智研咨詢)
- 交房期間業主維權突發事件應急預案
- 貸款后管理與客戶滿意度提升
- 自動生成的文檔-202504081202-99
- 【專題訓練】專題04三角形(考題猜想九大題型)(學生版+解析)-2025年七年級數學下學期期末總復習(北師大版)
- 2025年全國護士資格考試試卷及答案
- 費用類報銷管理制度
- 難點01:總集篇·十三種簡便計算巧算法【十三大考點】-2024年小升初數學典型例題系列(原卷版+解析)
評論
0/150
提交評論