操屁眼的视频在线免费看,日本在线综合一区二区,久久在线观看免费视频,欧美日韩精品久久综

新聞資訊

    如何動(dòng)態(tài)添加菜單/菜單項(xiàng)、子菜單、右鍵菜單

    有關(guān)菜單的操作主要用到CMenu類,當(dāng)然也可用相應(yīng)API函數(shù),CMenu類只是MFC對(duì)API中操作菜單的函數(shù)的封裝而已。 不過能用類就盡量用類,類的組織方式好唄,代碼看著也舒服。 若是SDK編程,那就用API吧 。

    CMenu ,menu1; //首先 定義CMenu對(duì)象

    一、 創(chuàng)建菜單,有兩種方法

    1. 用函數(shù)從資源加載

    .(); //從資源加載,這里使用SDI的主菜單資源

    2. 用函數(shù)創(chuàng)建

    menu1.(); //創(chuàng)建菜單,還沒有菜單項(xiàng)

    二、 添加菜單項(xiàng),可用()在菜單的最后加、()在指定的位置加.

    // 在.h 中定義,隨便給個(gè)整數(shù)值,不要和已有的重復(fù)就行了

    menu1.(,,"Test1"); // 第一項(xiàng)菜單項(xiàng)

    menu1.(,,"Test2"); // 第二項(xiàng)菜單項(xiàng)

    menu1.(1,|,

    (UINT),""); // 在第二項(xiàng)菜單項(xiàng)前添加新菜單項(xiàng)

    三、 添加子菜單

    同樣用()、()函數(shù)。不過要注意參數(shù)的設(shè)置。

    menu1.(||,

    mfc 在任意位置顯示菜單_怎么可以讓座機(jī)號(hào)碼顯示400任意號(hào)碼_mfc 菜單選中

    (UINT) .(0) ->,"子菜單");

    //第二個(gè)參數(shù)是菜單的句柄HMENU

    四、 刪除菜單

    用()、()函數(shù)來刪除指定位置的菜單/菜單項(xiàng)。

    兩者區(qū)別:如果菜單項(xiàng)是一個(gè)彈出式菜單,那么和之間的區(qū)別就很重要。清除彈出式菜單,但不清除它。一個(gè)是徹底的刪除,一個(gè)只是移除.

    MSDN: 1.The the to the menu or and frees the used by the menu or . 它使菜單或者子菜單的無效()。

    2. does not the menu or its , the menu to be . 可以再利用,并不從內(nèi)存中將menu刪除。

    五、 添加右鍵菜單

    CMenu menu1;

    menu1.(); //動(dòng)態(tài)創(chuàng)建彈出式菜單對(duì)象

    menu1.(,," 菜單項(xiàng)1");

    menu1.(,," 菜單項(xiàng)2");

    menu1.(2,||,

    (UINT) .,"子菜單"); //添加子菜單

    pt;

    怎么可以讓座機(jī)號(hào)碼顯示400任意號(hào)碼_mfc 在任意位置顯示菜單_mfc 菜單選中

    (&pt);

    menu1.(, pt.x, pt.y, this);

    menu1.();

    六、 響應(yīng)菜單的事件

    1. 若是資源中添加的菜單可用Class 添加菜單的響應(yīng)事件。

    2. 若是通過代碼創(chuàng)建的菜單,要手工實(shí)現(xiàn)菜單的消息映射。本例是在類中,當(dāng)然也可在View類、Doc類中,基于對(duì)話框的同樣也可以。

    1) 在.h文件中

    // map

    :

    //{{()

    int ( );

    void (); //這里添加菜單命令處理函數(shù)的聲明

    //}}

    ()

    mfc 在任意位置顯示菜單_mfc 菜單選中_怎么可以讓座機(jī)號(hào)碼顯示400任意號(hào)碼

    2) 在.cpp文件中,

    (, )

    //{{()

    ()

    (, ) //這里添加,注意沒有’ ;’

    //}}

    ()

    void ::()

    {

    // 這里寫你要如何處理的代碼

    ……

    }

    其他方法:

    若菜單ID值是連續(xù)的,最好用來映射消息處理函數(shù)mfc 在任意位置顯示菜單,可以在一個(gè)函數(shù)中處理一個(gè)范圍內(nèi)的所有消息。

    當(dāng)用戶按下某個(gè)菜單項(xiàng)mfc 在任意位置顯示菜單,會(huì)發(fā)出一個(gè)消息,而菜單項(xiàng)的ID號(hào),就包含在參數(shù)的低位中.

    mfc 在任意位置顯示菜單_mfc 菜單選中_怎么可以讓座機(jī)號(hào)碼顯示400任意號(hào)碼

    BOOL ::( , )

    {

    // TODO: Add your code here and/or call the base class

    UINT =();

    if (==) //為你加入菜單項(xiàng)時(shí)指定的ID號(hào)

    {

    //在這里放入響應(yīng)的代碼

    }

    ::(, );

    }

    對(duì)于右鍵菜單可以通過的返回值來處理。在參數(shù)中設(shè)置TPM_ ,這樣返回值就是你選擇的菜單項(xiàng)的ID,然后可以根據(jù)ID來處理。

    (TPM_ ,pt.x,pt.y,this);

    (關(guān)于函數(shù),這里有個(gè)地方需要注意一下,雖然MSDN里面沒有寫,但根據(jù)我的經(jīng)驗(yàn),TPM_ 值與

    值一樣當(dāng)你添加了這個(gè)值之后,函數(shù)都不會(huì)再向消息響應(yīng)窗口發(fā)送(send) when the user on a menu item.需要你自己處理所有事件,或者你可以調(diào)用 或方法,將消息再發(fā)送給消息響應(yīng)窗口,例如:::(m_nid.hWnd, , , 0); //是的返回值,即發(fā)出消息的菜單項(xiàng)ID。) by YY

    MSDN:If you in the , the value is the menu-item of the item that the user .

    mfc 在任意位置顯示菜單_mfc 菜單選中_怎么可以讓座機(jī)號(hào)碼顯示400任意號(hào)碼

    If this flag is set, the does not send when the user on a menu item.) by YY

    七、 其他

    () ; //當(dāng)您改變菜單時(shí),需要重畫菜單才能顯示所做的改變

    () ; //取得窗口控制窗口

    () //取得當(dāng)前程序使用的菜單

    () //取得子菜單

    應(yīng)使用CMenu類的()成員函數(shù)從Cmenu對(duì)象中分離出菜單句柄,避免對(duì)象失效后程序出錯(cuò)。

    如:

    CMenu menu;

    menu.(); //動(dòng)態(tài)創(chuàng)建彈出式菜單對(duì)象

    menu.(0,,"Test1");

    menu.(0,,"Test2");

    CMenu* = (); //取得程序主菜單 需在類中

    ->(||,(UINT)menu.,"子菜單1");

    menu.(); //直接用menu.在運(yùn)行時(shí)出錯(cuò),menu對(duì)象在這個(gè)事件結(jié)束就銷毀了

    ();

網(wǎng)站首頁   |    關(guān)于我們   |    公司新聞   |    產(chǎn)品方案   |    用戶案例   |    售后服務(wù)   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區(qū)    電話:010-     郵箱:@126.com

備案號(hào):冀ICP備2024067069號(hào)-3 北京科技有限公司版權(quán)所有