hur.cn - 华软网

 热门搜索

关于获取句柄的问题

  作者:未知    来源:网络    更新时间:2011/4/17
void CFRAMDlg::OnOK() 
{
// TODO: Add extra validation here
CWnd *pwnd=FindWindow(NULL,"无标题-记事本");
 HWND h=pwnd->m_hWnd;
 if(h==NULL)MessageBox("获取句柄失败");
 else MessageBox("成功");
CDialog::OnOK();
}


我预先开了记事本,想通过这段函数,看是否获取记事本的句柄,为什么一运行就显示“基础类停止工作呢”?
---华软 网友回答---
C++">
CWnd *pWnd=FindWindow(NULL,"无标题 - 记事本");
if( !pWnd )
{
    MessageBox("获取句柄失败");
}
else
{
    MessageBox("成功");
}

---华软网友回复---
引用楼主 xingqingxz 的回复:
void CFRAMDlg::OnOK() 
{
// TODO: Add extra validation here
CWnd *pwnd=FindWindow(NULL,"无标题-记事本");
HWND h=pwnd->m_hWnd;
if(h==NULL)MessageBox("获取句柄失败");
else MessageBox("成功");
CDialog::OnOK();
……


不会啊,我这里是正常的啊,不过你要确定你打开的记事本,标题为"无标题-记事本",如果标题完全正确的话,应该能够正常找到这个窗口的。

我的VC6 ,运行正常的。除非没有这个标题的窗口。
---华软网友回复---
1楼说得对
CWnd *pwnd=FindWindow(NULL,"无标题-记事本");
HWND h=pwnd->m_hWnd;你的问题就在这里,你应该判断一下 pwnd是否获得成功,
如果没有获得成功,pwnd==NULL,那你直接调用 pwnd->m_hWnd就会崩溃了.
---华软网友回复---
是无标题 - 记事本不是无标题-记事本
---华软网友回复---
4楼的很仔细。。
---华软网友回复---
WIN7 下。。这样一段代码编译通过,,p_Wnd也不为NULL。。。但用到SetWindowText的时候,毛反映都没有!!!!
---华软网友回复---
最后果断抛弃了WIN7 回到XP去!!!!
---华软网友回复---
不要动不动就怪win7,如果你是程序员就要考虑用win7的用户
---华软网友回复---
引用 1 楼 worcy_kiddy 的回复:
C/C++ code

CWnd *pWnd=FindWindow(NULL,"无标题 - 记事本");
if( !pWnd )
{
    MessageBox("获取句柄失败");
}
else
{
    MessageBox("成功");
}



原来是要判断下  pwnd是否正确获取,明白了,thanks
---华软网友回复---
引用 4 楼 lactoferrin 的回复:
是无标题 - 记事本不是无标题-记事本


果然是空格的问题      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。