• <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>
            面對現實,超越自己
            逆水行舟,不進則退
            posts - 269,comments - 32,trackbacks - 0

            一、顯示對話框

            1.顯示模式對話框:

            CDialogDemo dlg;
            dlg.DoModal();

            2.顯示非模式對話框:

            CDialogDemo *dlg=new CDialogDemo(this);
            dlg->Create(IDD_GENERAL_CONTROL);
            dlg->ShowWindow(SW_SHOW);


            二、關閉對話框

            1.CDialog::OnOK();   //確定按鈕按下         CDialog::OnCancel(); //取消按鈕被按下

            2.CDialog::DestoryWindow();  

            3.CDialog::EndDialog(0);  

            注:CDialog::CloseWindow();     僅僅是最小化對話框
            PostMessage(WM_CLOSE)


            三、在模態對話框類中關閉自身對話框
            可以在模態對話框類中通過PostMessage(WM_CLOSE)來關閉自身對話框。關閉MessageBox對話框后模態對話框隨之關閉。

            相關代碼如下:

             1 BOOL CImportDataPromptDialog::OnInitDialog()
             2 {
             3     CDialog::OnInitDialog();
             4 
             5     // TODO:  Add extra initialization here
             6     HANDLE hThread = StartImportDataThread();
             7     if (!hThread)
             8     {
             9         LOG("啟動導入數據線程失敗")
            10     }
            11 
            12     return TRUE;  // return TRUE unless you set the focus to a control
            13     // EXCEPTION: OCX Property Pages should return FALSE
            14 }
            15 
            16 DWORD WINAPI CImportDataPromptDialog::ImportDataThread(LPVOID Param)
            17 {
            18     CImportDataPromptDialog* importDlg = (CImportDataPromptDialog*)Param;
            19 
            20     if (CImportLog::ExtractionXMLData(importDlg->m_sXmlFilePath, importDlg->m_sDBPath))
            21     {
            22         importDlg->MessageBox("導入數據成功","平臺", MB_ICONINFORMATION);
            23         importDlg->PostMessage(WM_CLOSE);
            24     }
            25     else
            26     {
            27         importDlg->MessageBox("導入數據失敗","平臺", MB_ICONEXCLAMATION);
            28         importDlg->PostMessage(WM_CLOSE);
            29     }
            30     
            31     return 0;
            32 }
            33 
            34 HANDLE CImportDataPromptDialog::StartImportDataThread()
            35 {
            36     LOG("啟動導入數據線程");
            37     CWinThread* hThread = AfxBeginThread((AFX_THREADPROC)CImportDataPromptDialog::ImportDataThread,(LPVOID)this);
            38 
            39     return (hThread->m_hThread);
            40 }


            相關函數詳解:

            CloseWindow 
            函數功能:該函數最小化指定的窗口,但并不銷毀該窗口。
              函數原型:BOOL CloseWindow(HWND hWnd);
              參數:
              hWnd:將要最小化的窗口的句柄。
              返回值:如果函數成功,返回值為非零;如果函數失敗,返回值為零。若想獲得更多錯誤信息,請調用GetLastError函數。
              備注:窗口尺寸被最小化成一個圖標,并移動到屏幕的圖標區域。系統顯示窗口的圖標而不顯示窗口,并在圖標下顯示窗口標題。應用程序必須使用DestroyWindow函數銷毀窗口。

            DestroyWindow  
            函數功能:銷毀指定的窗口。這個函數通過發送WM_DESTROY 消息和 WM_NCDESTROY 消息使窗口無效并移除其鍵盤焦點。這個函數還銷毀窗口的菜單,清空線程的消息隊列,銷毀與窗口過程相關的定時器,解除窗口對剪貼板的擁有權,打斷剪貼板器的查看鏈。
              函數原型:BOOL DestroyWindow( HWND hWnd // handle to window to destroy);
              hWnd :將被銷毀的窗口的句柄。
              返回值:如果函數成功,返回值為非零:如果函數失敗,返回值為零。若想獲得更多錯誤信息,請調用GetLastError函數。
              備注:一個線程不能使用本函數銷毀別的線程創建的窗口。如果這個窗口是一個不具有WS_EX_NOPARENTNOTIFY 樣式的子窗口,則銷毀窗口時將發WM_PARENTNOTIFY 消息給其父窗口。
              Windows CE: 本函數將不發送 WM_NCDESTROY 消息.

            EndDialog  
            函數功能:該函數清除一個模態對話框,并使系統中止對對話框的任何處理。
              函數原型:BOOL EndDialog(HWND hDlg,int nResult);
              參數:
              hDlg:表示要被清除的對話框窗口。
              NResult:指定從創建對話框函數返回到應用程序的值。
              返回值:如果函數調用成功,則返回值為非零值;如果函數調用失敗則返回值為零。若想獲得錯誤信息請調用GetLastError函數。
              備注:由DialogBox,DialogBoxParam、DialogBoxlndirect和DialogBoxlndirectParam函數創建的對話框一定要用EndDialog函數來清除。應用程序從對話框應用程序內部調用EndDialog函數,該函數不能為其他目的而供使用。對話框應用程序可以在任何時間調用EndDialog函數;甚至在WM_INITDIALOG消息處理過程中。如果應用程序在WM_INTDIALOG消息處理過程中調用該函數,則對話框在顯示和輸入焦點被設置之前對話框被清除。EndDialog函數并不立即清除對話框。而是設置一個標志,并且允許對話框應用程序把控制權返回系統。系統在試圖從應用程序隊列檢索下一個消息之前檢測標志。如果已經設置了標志則系統中止消息循環,清除對話框,且用nResUlt中的值作為從創建對話框的函數中返回的值。


            本文相關鏈接:http://blog.csdn.net/bbrsher/article/details/6088108

            posted on 2012-09-05 14:44 王海光 閱讀(9869) 評論(0)  編輯 收藏 引用 所屬分類: MFC
            久久婷婷五月综合国产尤物app| 97超级碰碰碰久久久久| 久久综合五月丁香久久激情| 久久精品国产精品亜洲毛片| 伊人久久大香线焦AV综合影院| 久久综合精品国产二区无码| 国产成人久久777777| 无码AV中文字幕久久专区| 成人a毛片久久免费播放| 亚洲国产精品无码久久一线| 久久人妻少妇嫩草AV蜜桃| 久久天天躁狠狠躁夜夜躁2O2O| 欧美日韩精品久久久免费观看| 国产精品99久久免费观看| 久久久国产视频| 久久99精品久久久久久水蜜桃| 久久这里只有精品18| 中文字幕人妻色偷偷久久| 欧美午夜精品久久久久久浪潮| 青青草原1769久久免费播放| 少妇高潮惨叫久久久久久| 伊人久久五月天| 天天做夜夜做久久做狠狠| 久久99精品久久久久久野外 | 亚洲综合熟女久久久30p| 久久精品国产一区二区电影| 93精91精品国产综合久久香蕉| 精品无码久久久久久尤物| 久久亚洲精品无码VA大香大香| 久久亚洲色一区二区三区| 久久久久久毛片免费看| 久久精品亚洲乱码伦伦中文| 久久精品99无色码中文字幕| 久久久久亚洲精品无码网址| 国产精品永久久久久久久久久| 亚洲综合婷婷久久| 国产午夜电影久久| 久久精品夜色噜噜亚洲A∨| 久久综合伊人77777麻豆| 亚洲精品97久久中文字幕无码| 婷婷久久五月天|