MFC在OnBnClickedOk()无法执行if语句是个什么情况,该怎么处理

MFC在OnBnClickedOk()无法执行if语句是个什么情况
我是菜鸟,这让我很费解啊,求各位大侠解答

我在头文件声明了成员变量
 bool isPicNull;


然后在OnInitDialog() 赋初值
 isPicNull = true;

在OnPaint() 里面有这样的改变语句
if(pface == NULL)	
{
isPicNULL = true;
}

else
{
isPicNULL = false;
}


最后在OnBnClickedOk()中的if判断语句
if(isPicNULL == false);
{
try   

//执行SQL命令,保存图片
CString strSql= _T("insert  into t_face values ('"+ str_ID +"','"+ str_name +"','"+ str_sex +"'"+")");//具体执行的SQL语句 

m_pConnection->Execute(_bstr_t(strSql),NULL,adCmdText); 
MessageBox("成功添加信息!","成功",MB_OK|MB_ICONINFORMATION);
}
catch(_com_error &e)  
{
MessageBox("ID为空或者已存在","错误",MB_OK|MB_ICONINFORMATION);
}

}

if(isPicNULL == true)
{
MessageBox("未读取到图片!","警告",MB_OK|MB_ICONINFORMATION);
}


结果是两个if语句都进入了!
调试跟踪,isPicNULL 在点击之前是true或者false
一进入OnBnClickedOk()之后就变成了“无法读取内存” 
求解!!
MFC在OnBnClickedOk()无法执行if语句是个什么情况,该怎么处理
------解决方案--------------------
OnPaint()函数是在另外一个线程中运行的。在你点击界面时就要重绘了。它运行的次数非常频。你应该在OnPaint()函数处置断点看看
------解决方案--------------------
OnPaint() 中pface的值在变化,导致isPicNULL 在变化。OnPaint()的频率是很高的
------解决方案--------------------
MFC在OnBnClickedOk()无法执行if语句是个什么情况,该怎么处理