• <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>
            面對(duì)現(xiàn)實(shí),超越自己
            逆水行舟,不進(jìn)則退
            posts - 269,comments - 32,trackbacks - 0
            PreTranslateMessage(MSG* pMsg)中調(diào)用DoModal()模態(tài)窗口如下:

             1 BOOL CMainDlg::PreTranslateMessage(MSG* pMsg)
             2 {
             3     // TODO: Add your specialized code here and/or call the base class
             4     if ( pMsg->message == WM_LBUTTONDOWN)
             5     {
             6         GetWindowRect(m_oldRect);
             7         ::SetCapture(this->m_hWnd);
             8         m_bCanDrag = TRUE;
             9         m_lastPt = pMsg->pt ;
            10     }
            11     else if ( pMsg->message == WM_LBUTTONUP)
            12     {
            13         if( m_bCanDrag )
            14         {
            15             ::ReleaseCapture();
            16             m_bCanDrag = FALSE;
            17             GetWindowRect(m_newRect);
            18             if (m_oldRect.EqualRect(m_newRect))
            19             {
            20                 GetMainItemID(pMsg);//調(diào)用對(duì)話框函數(shù)
            21                 //return TRUE;
            22             }
            23         }
            24     } 
            25     else if( pMsg->message == WM_MOUSEMOVE)
            26     {
            27         if( m_bCanDrag )
            28         {
            29             CRect rc;
            30             GetWindowRect(&rc);
            31             rc.OffsetRect( pMsg->pt.x - m_lastPt.x , pMsg->pt.y - m_lastPt.y  ) ;
            32             m_lastPt = pMsg->pt;
            33             this->MoveWindow( rc );
            34         }
            35     }
            36 
            37     return CDialog::PreTranslateMessage(pMsg);
            38 }

            39  void CMainDlg::GetMainItemID(MSG* pMsg)
            40 {
            41     if (pMsg->hwnd == GetDlgItem( IDC_BTN_MYCOMPUTER )->m_hWnd)
            42     {
            43        CTestDlg dlg;
            44        dlg.DoModal();
            45     }
            46 }

            再單擊對(duì)話框上的按鈕時(shí)發(fā)送斷言中斷,具體位置如下:


            ::IsWindow(m_hWnd)

            函數(shù)功能:該函數(shù)確定給定的窗口句柄是否標(biāo)識(shí)一個(gè)已存在的窗口。
            函數(shù)原型:BOOL IsWindow(HWND hWnd);
            參數(shù):
            hWnd:被測(cè)試窗口的句柄。
            返回值:如果窗口句柄標(biāo)識(shí)了一個(gè)已存在的窗口,返回值為非零;如果窗口句柄未標(biāo)識(shí)一個(gè)已存在窗口,返回值為零。

            可能原因:在PreTranslateMessage里的獲取對(duì)應(yīng)m_hWnd,DoModal()模態(tài)對(duì)話框退出后,m_hWnd不是有效的窗口句柄。
            解決辦法:處理完WM_LBUTTONUP后,需要返回TRUE。
            posted on 2013-12-05 10:58 王海光 閱讀(2463) 評(píng)論(0)  編輯 收藏 引用 所屬分類: MFC
            狠狠88综合久久久久综合网| 欧美久久一区二区三区| 国产精品成人久久久久三级午夜电影| 色综合久久久久无码专区| 色综合合久久天天给综看| 久久97久久97精品免视看秋霞 | 精品久久久久久无码免费| A狠狠久久蜜臀婷色中文网| 久久亚洲日韩精品一区二区三区| 欧美精品乱码99久久蜜桃| 精品一二三区久久aaa片| 亚洲AV无码久久精品色欲| 无码人妻精品一区二区三区久久| 亚洲精品无码久久久久| 久久天天躁狠狠躁夜夜躁2014| 亚洲精品NV久久久久久久久久 | 久久免费视频观看| 国产精品久久免费| 久久99久久成人免费播放| 日韩电影久久久被窝网| 无码国内精品久久综合88| 久久人人爽人人爽人人片av高请| 91久久婷婷国产综合精品青草| 97精品伊人久久久大香线蕉| 久久久久亚洲精品天堂久久久久久| 热久久国产欧美一区二区精品| 久久久久亚洲av成人网人人软件| 久久综合国产乱子伦精品免费| 久久精品国产免费一区| 久久人搡人人玩人妻精品首页| 久久久噜噜噜久久中文字幕色伊伊 | 一本久久a久久精品vr综合| 亚洲精品国产美女久久久| 伊人久久精品线影院| 亚洲精品乱码久久久久久蜜桃| 久久精品国产亚洲av日韩| 欧美综合天天夜夜久久| 怡红院日本一道日本久久| 污污内射久久一区二区欧美日韩| 无码国内精品久久人妻| 久久久综合香蕉尹人综合网|