一个问题 关于CString 和char[]

19 篇文章 1 订阅

//通过一个定时器,获取鼠标所指的窗口的句柄,如果该窗口有密码,则读取密码。

void CgetpasswordDlg::OnTimer(UINT_PTR nIDEvent)
{
 // TODO: 在此添加消息处理程序代码和/或调用默认值


CPoint point;
CString m_strprompt;

CString m_static_pass;
 ::GetCursorPos(&point);//获取鼠标指针
 CWnd* w=CWnd::WindowFromPoint(point);
 
char sName[60];
 HWND hWnd=NULL;
 if(w!=NULL) hWnd=w->GetSafeHwnd( );
 
 if(hWnd != NULL)
 {
  ::GetClassNameW(hWnd,(LPWSTR)sName,55);
 CString str(sName);


  m_strprompt="这不是密码";
  if(str=="edit"::GetWindowLong(hWnd,GWL_STYLE) & ES_PASSWORD)
  m_strprompt="哈哈,密码找到啦";
  ::SendMessage(
     (HWND) hWnd,              // handle to destination window
       WM_GETTEXT,               // message to send
       (WPARAM)55,          // number of characters to copy
       (LPARAM) sName           // text buffer
     );
  m_static_pass=sName; 
  MessageBoxW(str,0,0);//只显示一个字符
   MessageBoxW((LPCTSTR)sName,0,0);//显示窗口的标题


 UpdateData(FALSE);}
 
 CDialog::OnTimer(nIDEvent);
}

 

运行没有成功。

CString str(sName);

sName获得了窗口标题,但str却没有。

问题一:该如何将sName的值给str呢?

问题二:程序运行时不时出现异常,不知何故。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值