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

                    參數為False時返回當前窗口系統菜單(窗口標題欄右鍵彈出的移動、大小、最大化等)的句柄

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

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

            任何沒有用函數GetSystemMenu來生成自己的窗口菜單拷貝的窗口將接受標準窗口菜單。

            窗口菜單上的菜單項發送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表示要執行的動作,因為在點擊這個菜單項時,將會發送消息,消息中nID就是這個ID,通過比對ID產生相應的動作
               }
            }
            void CADO_TestDlg::OnSysCommand(UINT nID, LPARAM lParam)
            {
            if ((nID & 0xFFF0) == IDM_ABOUTBOX)
            {
               CAboutDlg dlgAbout;
               dlgAbout.DoModal();
            }
            else
            {
               CDialog::OnSysCommand(nID, lParam);
            }
            }

            只有在主窗口是對話框的MFC應用程序中才會出現這個消息IDM_ABOUTBOX。
            IDM_ABOUTBOX是MFC框架在“InitDialog”函數中加入的“系統菜單”消息,用來彈出“IDD_ABOUTBOX”指定的對話框。
            關于((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內部用的,應用程序在檢測這個ID時,必須用 0xFFF0與nID相與,屏蔽低四位,根據相與的結果來產生相應的動作

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

            導航

            統計

            留言簿(13)

            隨筆分類(287)

            隨筆檔案(289)

            漏洞

            搜索

            積分與排名

            最新評論

            閱讀排行榜

            伊人久久大香线蕉亚洲五月天| 亚洲精品乱码久久久久66| 国产精品久久成人影院| 99久久er这里只有精品18| 国产国产成人久久精品| 亚洲午夜久久久影院| 99久久婷婷国产综合精品草原| 国产激情久久久久影院小草 | 久久精品免费网站网| 亚洲国产婷婷香蕉久久久久久 | 久久国产精品国产自线拍免费| 久久久久国产一区二区三区| 午夜精品久久久久久中宇| 久久国产乱子伦精品免费午夜| 久久精品国产亚洲AV电影| 欧美粉嫩小泬久久久久久久 | 国产精品女同一区二区久久| 丁香色欲久久久久久综合网| 2020最新久久久视精品爱| 日韩人妻无码一区二区三区久久 | 中文字幕成人精品久久不卡| 欧美日韩久久中文字幕| 久久久久亚洲精品男人的天堂| 丁香狠狠色婷婷久久综合| 97久久国产露脸精品国产| 无码人妻久久一区二区三区蜜桃| 精品久久国产一区二区三区香蕉 | 综合久久久久久中文字幕亚洲国产国产综合一区首 | 欧美伊人久久大香线蕉综合| 精品久久久无码中文字幕天天| 国产精品一久久香蕉国产线看观看 | 亚洲国产精品无码久久| 伊人久久精品影院| 亚洲国产成人精品91久久久 | 色8久久人人97超碰香蕉987| 久久福利资源国产精品999| 久久久久婷婷| 亚洲第一永久AV网站久久精品男人的天堂AV| 亚洲国产精品久久久久婷婷老年| 久久精品成人国产午夜| 青青草原综合久久|