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

            saga's blog

            突出重點(diǎn),系統(tǒng)全面,不留死角

              C++博客 :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
              33 Posts :: 2 Stories :: 185 Comments :: 0 Trackbacks

            公告

            QQ:34O859O5

            常用鏈接

            留言簿(15)

            搜索

            •  

            積分與排名

            • 積分 - 211494
            • 排名 - 123

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            vc6,建立MFC對(duì)話(huà)框程序,主窗口的InitInstance()里面,運(yùn)行SDK的API函數(shù)MessageBox(),都無(wú)法看見(jiàn)彈出的窗口。如:
            BOOL CMyText::InitInstance()
            {
            #ifdef _AFXDLL
                      Enable3dControls();   // Call this when using MFC in a shared DLL
            #else
                      Enable3dControlsStatic(); // Call this when linking to MFC statically
            #endif

                      CMyTextDlg dlg;
                      m_pMainWnd = &dlg;
                      int nResponse = dlg.DoModal();
                      if (nResponse == IDOK)
                      {
                                // TODO: Place code here to handle when the dialog is
                                //  dismissed with OK
                        }
                      else if (nResponse == IDCANCEL)
                      {
                       // TODO: Place code here to handle when the dialog is
                       //  dismissed with Cancel
                       MessageBox(NULL,"haha","aa",MB_OK);   //不會(huì)出現(xiàn)
                      }

                      // Since the dialog has been closed, return FALSE so that we exit the
                      //  application, rather than start the application's message pump.
                      return FALSE;
                     }

            上例中的MessageBox(),運(yùn)行時(shí)一跳而過(guò),看不見(jiàn)窗口。聽(tīng)的減彈出窗口的聲音。不知道為什么,網(wǎng)上有人提出分析這樣的問(wèn)題。其他窗口也無(wú)法生成。但是不知為何。一種解決方法是注釋掉m_pMainWnd = &dlg;這句即可正常。我試了,的確如此!

            那位高手或知之者路過(guò)請(qǐng)解答!謝謝!

                                                                                                                       ---------------------saga.constantine
                                                                                                                                         

            posted on 2007-12-06 20:37 saga.constantine 閱讀(5997) 評(píng)論(10)  編輯 收藏 引用 所屬分類(lèi): Code

            Feedback

            # re: [請(qǐng)教]MFC建立的對(duì)話(huà)框程序在主窗口InitInstance()函數(shù)里面無(wú)法建立窗口原因,請(qǐng)高手指點(diǎn)! 2007-12-07 09:34 萬(wàn)連文
            是不是放了richedit之類(lèi)的東西拉???????斷點(diǎn)設(shè)在dlg的構(gòu)造函數(shù)和OnCreate函數(shù)里面跟蹤,一直到mfc的src中去,你會(huì)發(fā)現(xiàn)學(xué)習(xí)到很多東西。  回復(fù)  更多評(píng)論
              

            # re: [請(qǐng)教]MFC建立的對(duì)話(huà)框程序在主窗口InitInstance()函數(shù)里面無(wú)法建立窗口原因,請(qǐng)高手指點(diǎn)![未登錄](méi) 2007-12-07 09:56 saga.constantine
            @連文
            沒(méi)有放richedit之類(lèi)的東西??!
            謝謝連文兄的建議!
            有空我會(huì)進(jìn)去看看。感覺(jué)現(xiàn)在還沒(méi)這個(gè)能力。現(xiàn)在主要不是學(xué)mfc!  回復(fù)  更多評(píng)論
              

            # re: [請(qǐng)教]MFC建立的對(duì)話(huà)框程序在主窗口InitInstance()函數(shù)里面無(wú)法建立窗口原因,請(qǐng)高手指點(diǎn)! 2007-12-07 11:02 夢(mèng)在天涯
            應(yīng)該是跟你的model dialg有關(guān)把,可能dialog的cancel消息的時(shí)候,他已經(jīng)delete了dialog,所以依附與dialog上的model dialog當(dāng)然也要完了!  回復(fù)  更多評(píng)論
              

            # re: [請(qǐng)教]MFC建立的對(duì)話(huà)框程序在主窗口InitInstance()函數(shù)里面無(wú)法建立窗口原因,請(qǐng)高手指點(diǎn)![未登錄](méi) 2007-12-07 14:01 saga.constantine
            @天涯兄
            我用的是sdk的api。MessageBox()不需要依附什么吧!第一個(gè)參數(shù)用NULL!網(wǎng)上很多人也遇到這個(gè)問(wèn)題。
            我苦與沒(méi)找到正解,難道只能告訴自己是MFC的bug。
            還請(qǐng)連文兄和天涯兄研究賜教!  回復(fù)  更多評(píng)論
              

            # re: [請(qǐng)教]MFC建立的對(duì)話(huà)框程序在主窗口InitInstance()函數(shù)里面無(wú)法建立窗口原因,請(qǐng)高手指點(diǎn)! 2007-12-07 15:28 mfc dialog
            這個(gè)解釋的話(huà)說(shuō)來(lái)話(huà)長(zhǎng)啦,我寫(xiě)了個(gè)篇blog試圖解釋下,你過(guò)去看看有沒(méi)有道理:http://www.codediscuss.com/mfc/mfc-dialog-initinstance/
            歡迎斧正!  回復(fù)  更多評(píng)論
              

            # re: [請(qǐng)教]MFC建立的對(duì)話(huà)框程序在主窗口InitInstance()函數(shù)里面無(wú)法建立窗口原因,請(qǐng)高手指點(diǎn)! 2007-12-07 15:54 dreamaker
            MessageBox在主對(duì)話(huà)框銷(xiāo)毀之后就沒(méi)了.
            用afxmessagebox好像可以.
              回復(fù)  更多評(píng)論
              

            # re: [請(qǐng)教]MFC建立的對(duì)話(huà)框程序在主窗口InitInstance()函數(shù)里面無(wú)法建立窗口原因,請(qǐng)高手指點(diǎn)! 2007-12-07 16:13 萬(wàn)連文
            起初沒(méi)有看明白你的問(wèn)題抱歉!
            m_pMainWnd = &dlg;屏蔽會(huì)出現(xiàn)的原因在于:
            void CWnd::OnNcDestroy()

            其中:
            if (pThread != NULL)
            {
            if (pThread->m_pMainWnd == this)
            {
            if (!afxContextIsDLL)
            {
            // shut down current thread if possible
            if (pThread != AfxGetApp() || AfxOleCanExitApp())
            AfxPostQuitMessage(0);
            }
            pThread->m_pMainWnd = NULL;
            }
            if (pThread->m_pActiveWnd == this)
            pThread->m_pActiveWnd = NULL;
            }

            也就是上面那個(gè)鏈接里面提到的。  回復(fù)  更多評(píng)論
              

            # re: [請(qǐng)教]MFC建立的對(duì)話(huà)框程序在主窗口InitInstance()函數(shù)里面無(wú)法建立窗口原因,請(qǐng)高手指點(diǎn)! 2007-12-07 16:53 saga.constantine
            真沒(méi)想到昨天晚上發(fā)的問(wèn) 今天就可以看到答案
            看來(lái)還是有很多熱心人的,真是感謝!
            自己看了下,雖然是沒(méi)有全懂,但是我知道該去了解那方面的知識(shí)來(lái)弄清楚這個(gè)問(wèn)題。

            連文兄謝謝了。
            還有那位不知道怎么稱(chēng)呼的,還專(zhuān)門(mén)寫(xiě)了篇blog解釋這個(gè)問(wèn)題的大俠。也謝謝。

            dreamaker兄恐怕是還沒(méi)搞清楚問(wèn)題和答案,要需要加油。  回復(fù)  更多評(píng)論
              

            # re: [請(qǐng)教]MFC建立的對(duì)話(huà)框程序在主窗口InitInstance()函數(shù)里面無(wú)法建立窗口原因,請(qǐng)高手指點(diǎn)! 2007-12-18 22:39 giscn
            若干年前就碰到過(guò)這個(gè)問(wèn)題,不過(guò)沒(méi)有深究,談?wù)勂渌模琈FC對(duì)Windows的消息封裝太多,連model 對(duì)話(huà)框都是用Modeless 來(lái)模擬,自成體系,但是讓你不容易搞清楚Windows的消息循環(huán)與機(jī)制,還是WTL接近API一些。是麻煩點(diǎn),但是熟悉之后對(duì)問(wèn)題的定位反而容易一些。  回復(fù)  更多評(píng)論
              

            # re: [請(qǐng)教]MFC建立的對(duì)話(huà)框程序在主窗口InitInstance()函數(shù)里面無(wú)法建立窗口原因,請(qǐng)高手指點(diǎn)! 2008-09-17 22:38 perfect
            MessageBox是依賴(lài)于對(duì)話(huà)框存在的,也就是對(duì)話(huà)框結(jié)束,他的生存周期終止,所以會(huì)迅速消失掉。  回復(fù)  更多評(píng)論
              

            久久精品国产99国产精品澳门| 久久精品人人做人人爽电影 | 91精品观看91久久久久久| 久久久久亚洲AV无码永不| 情人伊人久久综合亚洲| 久久精品欧美日韩精品| 97精品伊人久久久大香线蕉| 色综合久久88色综合天天 | 亚洲AV无码久久| 久久97久久97精品免视看秋霞| 久久青青草视频| 日韩精品久久久久久| 亚洲精品无码专区久久同性男| 人妻精品久久无码专区精东影业| 国内精品免费久久影院| 亚洲国产精品无码久久一区二区| 国产福利电影一区二区三区,免费久久久久久久精 | 91精品婷婷国产综合久久| 久久久亚洲AV波多野结衣| 久久er国产精品免费观看8| 无码日韩人妻精品久久蜜桃| 久久强奷乱码老熟女网站| 亚洲午夜久久影院| 久久99精品久久久久婷婷| 亚洲一区精品伊人久久伊人| 热re99久久精品国产99热| 人妻少妇久久中文字幕一区二区| 久久国产精品免费| 91精品日韩人妻无码久久不卡| 69久久精品无码一区二区| 久久AV无码精品人妻糸列| 99精品国产免费久久久久久下载 | 久久国产成人| 久久av高潮av无码av喷吹| 久久99国产精品久久99果冻传媒| 欧洲人妻丰满av无码久久不卡| 亚洲国产成人久久笫一页| 亚洲日韩欧美一区久久久久我| 久久人人爽人人澡人人高潮AV | 久久综合给合久久狠狠狠97色69| 狠狠色狠狠色综合久久|