因為在關閉時要對設備進行關閉,有一些代碼。我先是多載了ok按鈕,然后做了一個wm_close的訊息回應函式,然后里面代碼相同,結果相同。
我后來想省事,在ok函式里直接呼叫關閉函式,但是視窗卻關不掉。
代碼如下:
//ok按鈕的回應函式
void Cgrab_MFCDlg::OnBnClickedOk()
{
this->OnClose();
}
void Cgrab_MFCDlg::OnClose()
{
if(bCameraOpen==TRUE)
{
res = PylonDeviceClose( hDev );
CHECK(res);
res = PylonDestroyDevice ( hDev );
CHECK(res);
free( imgBuf );
PylonTerminate();
}
CDialogEx::OnClose();
}
我的想法是,onok函式呼叫onclose,和按叉是同樣的效果。但是ok按鈕關不掉。
uj5u.com熱心網友回復:
加上 CDialogEx::OnOK();uj5u.com熱心網友回復:
OnBnClickedOk 有訊息映射嗎?默認多載 OnOK
設備關閉的呼叫 建議多載 DestroyWindow 在其中進行, 這樣模態/非模態的都可以呼叫到
uj5u.com熱心網友回復:
加上這句能執行嗎?因為已經進入onclose,那么CDialogEx::OnClose();這行代碼應該會關閉視窗吧?
uj5u.com熱心網友回復:
試了確實可以了。
有點沒明白,按ok按鈕,呼叫了onclose函式,onclose函式一旦執行,就是關閉視窗的吧?為什么還能回傳去執行CDialogEx::OnOK(); 這句代碼呢?
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/109598.html
標籤:基礎類
上一篇:WIN32和MFC各自優點
