MFC在OnBnClickedOk()无法执行if语句是个什么情况,该怎么处理
MFC在OnBnClickedOk()无法执行if语句是个什么情况
我是菜鸟,这让我很费解啊,求各位大侠解答
我在头文件声明了成员变量
然后在OnInitDialog() 赋初值
在OnPaint() 里面有这样的改变语句
最后在OnBnClickedOk()中的if判断语句
结果是两个if语句都进入了!
调试跟踪,isPicNULL 在点击之前是true或者false
一进入OnBnClickedOk()之后就变成了“无法读取内存”
求解!!

------解决方案--------------------
OnPaint()函数是在另外一个线程中运行的。在你点击界面时就要重绘了。它运行的次数非常频。你应该在OnPaint()函数处置断点看看
------解决方案--------------------
OnPaint() 中pface的值在变化,导致isPicNULL 在变化。OnPaint()的频率是很高的
------解决方案--------------------
我是菜鸟,这让我很费解啊,求各位大侠解答
我在头文件声明了成员变量
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()之后就变成了“无法读取内存”
求解!!
------解决方案--------------------
OnPaint()函数是在另外一个线程中运行的。在你点击界面时就要重绘了。它运行的次数非常频。你应该在OnPaint()函数处置断点看看
------解决方案--------------------
OnPaint() 中pface的值在变化,导致isPicNULL 在变化。OnPaint()的频率是很高的
------解决方案--------------------