• <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>

            小默

            [zz]MFC - GetSystemMenu(FALSE)

                    參數(shù)為False時返回當(dāng)前窗口系統(tǒng)菜單(窗口標(biāo)題欄右鍵彈出的移動、大小、最大化等)的句柄

                    系統(tǒng)菜單是指我們點(diǎn)擊窗體左上角的小圖標(biāo)時所彈出的菜單,其中好象有“恢復(fù)”.“移動”.“最大化”.“最小化”.“關(guān)閉”這么幾個按鈕.這個菜單用普通的方法是不能編輯與改變的,但是我們可以通過api函數(shù)getsystemmenu來得到它的句柄,然后通過菜單相關(guān)的api函數(shù)就能改變它了。

            如果括號中參數(shù)為FALSE,GetSystemMenu返回當(dāng)前使用窗口菜單的拷貝的句柄。該拷貝初始時與窗口菜單相同,但可以被修改。
            如果此參數(shù)為TRUE,GetSystemMenu重置窗口菜單到缺省狀態(tài)。如果存在先前的窗口菜單,將被銷毀。

            任何沒有用函數(shù)GetSystemMenu來生成自己的窗口菜單拷貝的窗口將接受標(biāo)準(zhǔn)窗口菜單。

            窗口菜單上的菜單項(xiàng)發(fā)送WM_SYSCOMMAND消息.

            在一個對話框工程中:

            CMenu* pSysMenu = GetSystemMenu(FALSE);
            if (pSysMenu != NULL)
            {
               CString strAboutMenu;
               strAboutMenu.LoadString(IDS_ABOUTBOX);
               if (!strAboutMenu.IsEmpty())
               {
                pSysMenu->AppendMenu(MF_SEPARATOR);//添加一條水平線
                pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);//IDM_ABOUTBOX表示要執(zhí)行的動作,因?yàn)樵邳c(diǎn)擊這個菜單項(xiàng)時,將會發(fā)送消息,消息中nID就是這個ID,通過比對ID產(chǎn)生相應(yīng)的動作
               }
            }
            void CADO_TestDlg::OnSysCommand(UINT nID, LPARAM lParam)
            {
            if ((nID & 0xFFF0) == IDM_ABOUTBOX)
            {
               CAboutDlg dlgAbout;
               dlgAbout.DoModal();
            }
            else
            {
               CDialog::OnSysCommand(nID, lParam);
            }
            }

            只有在主窗口是對話框的MFC應(yīng)用程序中才會出現(xiàn)這個消息IDM_ABOUTBOX。
            IDM_ABOUTBOX是MFC框架在“InitDialog”函數(shù)中加入的“系統(tǒng)菜單”消息,用來彈出“IDD_ABOUTBOX”指定的對話框。
            關(guān)于((nID & 0xFFF0) == IDM_ABOUTBOX):
            在MSDN中SysCommand的幫助中,有這樣一段:
            In WM_SYSCOMMAND messages, the four low-order bits of the nID parameter are used internally by Windows. When an application tests the value of nID, it must combine the value 0xFFF0 with the nID value by using the bitwise-AND operator to obtain the correct result.  
            即nID的低四位是Windows內(nèi)部用的,應(yīng)用程序在檢測這個ID時,必須用 0xFFF0與nID相與,屏蔽低四位,根據(jù)相與的結(jié)果來產(chǎn)生相應(yīng)的動作

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

            導(dǎo)航

            統(tǒng)計(jì)

            留言簿(13)

            隨筆分類(287)

            隨筆檔案(289)

            漏洞

            搜索

            積分與排名

            最新評論

            閱讀排行榜

            狠狠色噜噜色狠狠狠综合久久| 99久久无码一区人妻a黑| 一本色道久久88加勒比—综合| 国内精品久久久久久久久电影网 | 久久免费精品视频| 久久久亚洲精品蜜桃臀| 亚洲女久久久噜噜噜熟女| 国产精品成人精品久久久| 久久亚洲sm情趣捆绑调教| 国产一级做a爰片久久毛片| 香蕉久久久久久狠狠色| 精品久久久久久亚洲| 开心久久婷婷综合中文字幕| 久久久精品人妻一区二区三区蜜桃 | 久久99国产精品99久久| 久久亚洲精品成人无码网站| 久久本道久久综合伊人| 99re这里只有精品热久久 | 久久国产免费观看精品| 久久久精品人妻一区二区三区蜜桃| 久久久九九有精品国产| 亚洲AV日韩精品久久久久久| 伊人伊成久久人综合网777| 国产免费久久久久久无码| 久久99精品国产99久久| 国产成人久久AV免费| 亚洲精品无码久久千人斩| 久久伊人五月丁香狠狠色| 性做久久久久久久久老女人| 久久天天躁狠狠躁夜夜av浪潮| 国产精品女同一区二区久久| 青青草国产精品久久久久| 国产美女久久精品香蕉69| 漂亮人妻被黑人久久精品| 久久99精品久久久大学生| 久久精品国产亚洲AV久| 久久成人小视频| 久久综合久久自在自线精品自| 国产毛片欧美毛片久久久| 亚洲国产精品久久电影欧美| 色偷偷偷久久伊人大杳蕉|