青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

小默

[zz]MFC中菜單的應(yīng)用(注釋詳細(xì))

  1 取消右鍵系統(tǒng)菜單

PreCreateWindow函數(shù)中改變設(shè)置樣式:

cs.style&=~WS_SYSMENU

CREATESTRUCT的具體結(jié)構(gòu)如下:

 

typedef struct tagCREATESTRUCT {
   LPVOID    lpCreateParams;
   HANDLE    hInstance;
//當(dāng)前實(shí)例句柄
   HMENU     hMenu;//菜單句柄
   HWND      hwndParent;//父窗口
   int       cy;//寬度
   int       cx;//高度
   int       y;//窗口位置坐標(biāo)
   int       x;//窗口位置坐標(biāo)
   LONG      style;//窗口樣式
   LPCSTR    lpszName;//標(biāo)題
   LPCSTR    lpszClass;//窗口類名
   DWORD     dwExStyle;//窗口擴(kuò)展樣式
}
 CREATESTRUCT;

 

 

2.在右鍵系統(tǒng)菜單加入菜單項(xiàng):

在窗口創(chuàng)建的時(shí)候加入

    CMenu *pMenu=GetSystemMenu(FALSE);//取得系統(tǒng)菜單
    CString StrMenuTitle="我的菜單";
    pMenu
->AppendMenu(MF_SEPARATOR);//增加一個(gè)項(xiàng)目到菜單的末尾,增加分割線
    pMenu->AppendMenu(MF_STRING,IDM_MYSYSTEM,StrMenuTitle);

MSDN中的定義;

BOOL AppendMenu( UINT nFlags, UINT nIDNewItem = 0, LPCTSTR lpszNewItem = NULL );
BOOL AppendMenu( UINT nFlags, UINT nIDNewItem, 
const CBitmap* pBmp );

NFlags:標(biāo)志位,可以是, MF_OWNERDRAW, MF_STRING, MF_SEPARATOR, MF_POPUP

NIDNewItem:菜單項(xiàng)目的ID,如果Nflags設(shè)置為MF_POPUP,那么就是子菜單的句柄,如果是MF_SEPARATOR,就突列.

LpszNewItem:新菜單項(xiàng)的內(nèi)容

PBmp:菜單項(xiàng)圖像對象,指向一個(gè)Cbitmap對象

在系統(tǒng)菜單中增加了菜單項(xiàng)之后再增加消息處理函數(shù).發(fā)送的是系統(tǒng)消息,OnSysCommand函數(shù)中處理

void CMainFrame::OnSysCommand(UINT nID, LPARAM lParam)
{
if(nID==IDM_MYSYSTEM)
{
     MessageBox(
"這是我的自定義系統(tǒng)菜單","信息提示",MB_OK);
}

CFrameWnd::OnSysCommand(nID, lParam);
}

3.動態(tài)的增加菜單項(xiàng):

 

pMenu->GetSubMenu(0)->AppendMenu(MF_SEPARATOR);//增加分割線
pMenu->GetSubMenu(0)->AppendMenu(MF_STRING,ID_APP_ABOUT,"關(guān)于");//增加菜單項(xiàng)

4.動態(tài)的刪除菜單項(xiàng):

    CMenu *pMenu=AfxGetMainWnd()->GetMenu()->GetSubMenu(0);
    
for(int i=0;i<pMenu->GetMenuItemCount();i++)
    
{
        CString StrName;
        pMenu
->GetMenuString(i,StrName,MF_BYPOSITION);
        
if(StrName.Find("保存",0)==0)
        
{
            pMenu
->DeleteMenu(i,MF_BYPOSITION);
            MessageBox(
"刪除“文件/保存”菜單操作成功!請查看","信息提示",MB_OK);
            
break;
        }

    }

函數(shù)說明:

    int GetMenuString( UINT nIDItem, LPTSTR lpString, int nMaxCount, UINT nFlags ) const;

int GetMenuString( UINT nIDItem, CString& rString, UINT nFlags ) const;

nIDItem:由標(biāo)志位確定,可以是菜單項(xiàng)的ID或者偏移量

lpStringrString:存放字符

nMaxCount:最大長度

nFlags;標(biāo)志位,可以是MF_BYCOMMANDMF_BYPOSITION

BOOL DeleteMenu( UINT nPosition, UINT nFlags );//刪除一個(gè)菜單項(xiàng)

BOOL RemoveMenu( UINT nPosition, UINT nFlags );

5.如何觸發(fā)系統(tǒng)菜單命令;

AfxGetMainWnd()->SendMessage(WM_SYSCOMMAND,SC_CLOSE);

6.如何創(chuàng)建一個(gè)彈出式菜單

    以右擊鼠標(biāo)鍵為例:

    CMenu Menu;

    //創(chuàng)建一個(gè)彈出式菜單

    Menu.CreatePopupMenu();

    //添加一個(gè)菜單項(xiàng)

    Menu.AppendMenu(0, ID_POPUP_MENU1, "菜單項(xiàng)&");

    //添加一個(gè)左邊帶復(fù)選標(biāo)志的菜單項(xiàng)

    Menu.AppendMenu(MF_CHECKED, ID_POPUP_MENU2, "菜單項(xiàng)&");

    //添加一個(gè)分隔條

    Menu.AppendMenu(MF_SEPARATOR, 0, "");

    //顯示一個(gè)灰色和無效的菜單項(xiàng)

    Menu.AppendMenu(MF_GRAYED, ID_POPUP_MENU3, "菜單項(xiàng)&");

    //添加一個(gè)左邊帶單選標(biāo)志的菜單項(xiàng)

    Menu.AppendMenu(0, ID_POPUP_MENU4, "菜單項(xiàng)&");

    Menu.CheckMenuRadioItem(ID_POPUP_MENU3,ID_POPUP_MENU4,ID_POPUP_MENU4,MF_BYCOMMAND);

    //使菜單項(xiàng)為缺省菜單項(xiàng),以黑體字顯示,并在用戶按回車時(shí)響應(yīng)

    ::SetMenuDefaultItem(Menu.m_hMenu,ID_POPUP_MENU4,MF_BYCOMMAND);

    //根據(jù)當(dāng)前光標(biāo)位置顯示菜單

    CPoint Pos;

    GetCursorPos(&Pos); //取得光標(biāo)位置

    Menu.TrackPopupMenu(TPM_RIGHTBUTTON, Pos.x, Pos.y, this);//彈出菜單

    Menu.DestroyMenu();

    CView::OnRButtonDown(nFlags, point);

函數(shù)說明:

BOOL CreatePopupMenu( );//創(chuàng)建一個(gè)彈出式菜單

BOOL CheckMenuRadioItem( UINT nIDFirst, UINT nIDLast, UINT nIDItem, UINT nFlags );

    NIDFirst:單選按鈕組的第一個(gè)項(xiàng)的ID或命令

    NIDLast:單選按鈕組的最或一個(gè)項(xiàng)的ID或命令

NIDItem:單選標(biāo)記的按鈕

NFlags;標(biāo)志位,MF_BYCOMMANDMF_BYPOSITION

BOOL TrackPopupMenu( UINT nFlags, int x, int y, CWnd* pWnd, LPCRECT lpRect = NULL );//在指定的位置彈出菜單

NFlagsTPM_CENTERALIGNTPM_LEFTALIGN TPM_RIGHTALIGNTPM_LEFTBUTTON TPM_RIGHTBUTTON

PWnd:從菜單中接收WM_COMMAND消息

LpRect:包含屏幕的矩形位置,如果用戶單擊,就取消彈出菜單的顯示,為NULL時(shí),如果用戶單擊彈出菜單的其他部分,就取消顯示

7.創(chuàng)建快捷菜單:

重載窗口的OnContextMenu函數(shù),當(dāng)鼠標(biāo)右鍵單擊時(shí)觸發(fā)它,

void C。。。。View::OnContextMenu(CWnd* pWnd, CPoint point)

{

    CMenu Menu;

    if(Menu.LoadMenu(IDR_MAINFRAME))

    {

        CMenu *pMenu=Menu.GetSubMenu(0);

        pMenu->TrackPopupMenu(TPM_RIGHTBUTTON,point.x,point.y,AfxGetMainWnd());

    }

}

8.取消應(yīng)用程序的菜單;

    CMenu *pMenu=GetMenu();

    pMenu->DestroyMenu();

    SetMenu(NULL);

9.如何在菜單中添加位圖

    在應(yīng)用程序的視圖類中添加CBitmap類的對象,取名為bm_open1bm_open2。在視圖類的構(gòu)造函數(shù)中添加以下代碼:

bm_open1.LoadBitmap(IDB_OPEN1)

bm_open2.LoadBitmap(IDB_OPEN2)

添加位圖到菜單

CWnd*parent=GetParent()

CMenu*pmenubar=parent->GetMenu()

CMenu*pmenu=pmenubar->GetSubMenu(2)

pmenu->SetMenuItemBitmaps(1MF_BYPOSITION&bm_open1&bm_open2)

函數(shù)說明:

BOOL SetMenuItemBitmaps( UINT nPosition, UINT nFlags, const CBitmap* pBmpUnchecked, const CBitmap* pBmpChecked );

相信看到函數(shù)原形就可以知道函數(shù)是什么意思

posted on 2009-10-23 16:32 小默 閱讀(1869) 評論(0)  編輯 收藏 引用 所屬分類: Language

導(dǎo)航

統(tǒng)計(jì)

留言簿(13)

隨筆分類(287)

隨筆檔案(289)

漏洞

搜索

積分與排名

最新評論

閱讀排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲电影专区| 国产模特精品视频久久久久| 蜜臀久久久99精品久久久久久| 免费永久网站黄欧美| 国产欧美精品va在线观看| 亚洲性感美女99在线| 亚洲全部视频| 欧美日韩八区| 99视频一区| 亚洲免费不卡| 欧美三区美女| 亚洲欧美日韩在线播放| 亚洲专区欧美专区| 国产精品亚洲综合天堂夜夜| 亚洲一区二区三区四区在线观看| 亚洲乱码国产乱码精品精98午夜 | 亚洲精品久久久久久久久| 老司机成人在线视频| 在线观看日韩国产| 欧美高清影院| 欧美日韩成人综合| 亚洲一区自拍| 午夜在线一区| 亚洲国产精品第一区二区| 亚洲人www| 国产精品日韩久久久久| 久久久久www| 另类激情亚洲| 亚洲视频在线观看免费| 亚洲一区成人| 在线精品视频一区二区三四| 亚洲国产精品一区二区第一页 | 亚洲欧洲另类国产综合| 欧美特黄一区| 老牛国产精品一区的观看方式| 久久五月婷婷丁香社区| 一区二区免费在线播放| 亚洲免费在线电影| 在线观看亚洲精品| 日韩视频免费在线观看| 国产乱码精品一区二区三区五月婷| 久久久国产精彩视频美女艺术照福利| 久久成人一区| 一区二区不卡在线视频 午夜欧美不卡在 | 欧美日韩人人澡狠狠躁视频| 亚洲欧美日韩中文在线制服| 久久久久在线| 亚洲视频自拍偷拍| 久久精品免费电影| 亚洲午夜激情网页| 久久夜色精品国产| 欧美一区午夜视频在线观看| 久久综合综合久久综合| **性色生活片久久毛片| 日韩一级在线| 欧美在线高清| 亚洲视频在线免费观看| 久久午夜羞羞影院免费观看| 亚洲一区免费网站| 久久综合图片| 欧美在线亚洲一区| 欧美日韩三级一区二区| 麻豆免费精品视频| 国产精品久久久久aaaa樱花| 欧美r片在线| 国产一区二区三区久久久久久久久| 亚洲精品在线一区二区| 一区在线播放| 亚洲欧美国产毛片在线| 亚洲视频综合| 欧美激情区在线播放| 免费在线一区二区| 国产一区二区三区四区三区四| 99精品欧美一区| 最新日韩精品| 久久婷婷国产综合国色天香| 久久成人免费日本黄色| 欧美性感一类影片在线播放| 欧美国产精品一区| 亚洲高清精品中出| 久久久免费精品视频| 欧美一区二区三区另类| 国产精品系列在线| 亚洲图色在线| 亚洲欧美中文在线视频| 欧美日韩极品在线观看一区| 亚洲福利国产| 亚洲激情视频网站| 麻豆精品精品国产自在97香蕉| 久久一区二区三区av| 国产一区二区看久久| 欧美在线观看一区二区三区| 欧美一区亚洲| 狠狠色综合网| 久久一区精品| 亚洲成人自拍视频| 亚洲欧洲在线视频| 欧美激情第9页| 99日韩精品| 亚洲综合日韩在线| 国产欧美一区二区三区在线老狼| 亚洲欧美日韩久久精品| 久久久精品国产免费观看同学| 好吊妞**欧美| 免费视频久久| 99国产精品一区| 欧美在线91| 亚洲电影免费观看高清完整版在线观看 | 国产精品99久久久久久www| 这里只有精品电影| 国产精品一区二区久久精品| 欧美一区二区三区四区夜夜大片| 久久久久亚洲综合| 亚洲国内欧美| 亚洲在线观看| 在线观看欧美日本| 久久蜜桃香蕉精品一区二区三区| 欧美成人嫩草网站| 一本久道久久综合婷婷鲸鱼 | 亚洲一区二区久久| 国产日韩欧美一区二区三区四区 | 国产一在线精品一区在线观看| 鲁大师影院一区二区三区| 日韩午夜在线电影| 欧美专区福利在线| 亚洲国产成人午夜在线一区| 欧美视频久久| 久久亚洲精品伦理| 亚洲午夜羞羞片| 欧美岛国在线观看| 欧美综合二区| 一区二区三区国产精华| 红桃视频国产精品| 欧美无乱码久久久免费午夜一区| 久久精品国产久精国产思思| 亚洲精品一区二区在线| 久久久久久久久久看片| 亚洲一区免费观看| 亚洲日本中文| 国内一区二区三区在线视频| 欧美午夜一区二区三区免费大片| 美女精品自拍一二三四| 亚洲一区二区三区四区中文| 亚洲成人中文| 麻豆91精品| 久久成人一区| 亚洲女同精品视频| 亚洲黄色在线看| 国产一区二区三区在线观看免费 | 亚洲淫片在线视频| 亚洲区在线播放| 国产一区二区三区在线观看视频 | 欧美日韩一区二区三区高清| 久久人人爽人人| 亚洲影视综合| 99精品欧美一区二区三区综合在线| 欧美成人精精品一区二区频| 久久久亚洲人| 久久精品视频在线播放| 性做久久久久久免费观看欧美| 一本色道久久综合| 日韩视频在线免费| 亚洲破处大片| 亚洲国产精品久久久久秋霞影院 | 亚洲韩日在线| 在线观看成人网| 国产主播一区二区| 国产性天天综合网| 国产噜噜噜噜噜久久久久久久久| 欧美香蕉视频| 欧美先锋影音| 国产精品成人观看视频国产奇米| 欧美日韩在线免费观看| 欧美日韩国产综合网| 欧美日韩在线一二三| 欧美三级午夜理伦三级中文幕 | 亚洲欧美一区二区三区在线| 亚洲精品三级| 在线播放精品| 国产精品免费一区二区三区观看| 欧美日韩播放| 国产精品a级| 国产精品午夜国产小视频| 国产精品日韩在线| 国产亚洲激情视频在线| 国外成人在线| 亚洲福利视频免费观看| 亚洲精品在线视频| 国产精品99久久久久久白浆小说| 一本色道久久精品| 亚洲综合国产| 久久免费的精品国产v∧| 欧美成人午夜激情视频| 亚洲激情在线播放| 亚洲美女av网站| 午夜久久tv| 欧美a级大片| 欧美三级第一页| 国产欧美日韩视频在线观看| 亚洲第一在线|