• <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時(shí)返回當(dāng)前窗口系統(tǒng)菜單(窗口標(biāo)題欄右鍵彈出的移動(dòng)、大小、最大化等)的句柄

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

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

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

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

            在一個(gè)對(duì)話框工程中:

            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í)行的動(dòng)作,因?yàn)樵邳c(diǎn)擊這個(gè)菜單項(xiàng)時(shí),將會(huì)發(fā)送消息,消息中nID就是這個(gè)ID,通過(guò)比對(duì)ID產(chǎn)生相應(yīng)的動(dòng)作
               }
            }
            void CADO_TestDlg::OnSysCommand(UINT nID, LPARAM lParam)
            {
            if ((nID & 0xFFF0) == IDM_ABOUTBOX)
            {
               CAboutDlg dlgAbout;
               dlgAbout.DoModal();
            }
            else
            {
               CDialog::OnSysCommand(nID, lParam);
            }
            }

            只有在主窗口是對(duì)話框的MFC應(yīng)用程序中才會(huì)出現(xiàn)這個(gè)消息IDM_ABOUTBOX。
            IDM_ABOUTBOX是MFC框架在“InitDialog”函數(shù)中加入的“系統(tǒng)菜單”消息,用來(lái)彈出“IDD_ABOUTBOX”指定的對(duì)話框。
            關(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)用程序在檢測(cè)這個(gè)ID時(shí),必須用 0xFFF0與nID相與,屏蔽低四位,根據(jù)相與的結(jié)果來(lái)產(chǎn)生相應(yīng)的動(dòng)作

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

            導(dǎo)航

            統(tǒng)計(jì)

            留言簿(13)

            隨筆分類(287)

            隨筆檔案(289)

            漏洞

            搜索

            積分與排名

            最新評(píng)論

            閱讀排行榜

            久久九九久精品国产免费直播| 国产aⅴ激情无码久久| 久久国产乱子精品免费女| 久久亚洲综合色一区二区三区| 亚洲国产成人久久精品影视 | 少妇精品久久久一区二区三区| 色婷婷久久综合中文久久蜜桃av| 久久精品视频网| 中文字幕精品久久久久人妻| 国产成人久久激情91| 久久经典免费视频| 久久99国产精品久久99果冻传媒| 亚洲国产成人久久综合一区77 | 大香网伊人久久综合网2020| 久久精品无码一区二区WWW| 国产精品久久网| 亚洲精品美女久久777777| 久久亚洲国产成人影院网站| 久久久国产精品网站| 国内精品伊人久久久久AV影院| 一本一道久久a久久精品综合| 曰曰摸天天摸人人看久久久| 久久夜色精品国产噜噜亚洲AV| 国产精品乱码久久久久久软件| 久久国产成人午夜AV影院| 国内精品久久久久影院一蜜桃| 亚洲欧美日韩中文久久| 中文精品99久久国产| 伊人精品久久久久7777| 久久久久国产一级毛片高清板| 国产精品熟女福利久久AV| 国産精品久久久久久久| 99久久精品国产一区二区| 中文字幕亚洲综合久久| 伊人色综合久久天天| 久久国产成人午夜AV影院| 久久久久亚洲精品中文字幕| 久久毛片免费看一区二区三区| 日韩电影久久久被窝网| 久久久亚洲裙底偷窥综合| 一本色道久久综合亚洲精品|