error C2248: “CDialog::OnOK”: 无法访问 protected 成员(在“CDialog”类中声明)
在线程中调用onok,编译出现这个错误,很不理解。。。算了还是上代码,另外注释掉的那句发送消息,希望能通过发送消息关闭dialog,但是运行的时候会断言...
------解决思路----------------------
这是CDialog::OnOk的声明。
protected成员在类外相当于私有的,肯定没法直接调用。
------解决思路----------------------
关于第二个问题,你贴出来的这个函数也不是某个类的成员函数。
比如你在CDialog的成员函数中,这么直接调用FromHandle函数,
会默认你调用CDialog的FromHandle。不是类的成员函数中这么
直接调用,只能是调用windows api函数,而windows中没有这个
函数。
------解决思路----------------------
你这些错误都是C++基础性的错误呀!
再一个,线程里面能用消息的,就不要用对象去调函数,这是基本原则:
HWND hWnd = ::FindWindow(NULL,"Dialog");
if(hWnd && IsWindow(hWnd))
{
::PostMessage(hWnd,WM_CLOSE,0,0);
}