遇到一个问题,我想解决在对话框滑动块的问题/

本文介绍了解决Visual C++ 2005中指针类型不匹配问题的方法,通过使用TCHAR进行转换,避免了LPWCSTR、LPWSTR、LPCSTR、LPSTR等指针类型之间的不兼容问题,并提供了具体的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在看我的代码之前给大家提供一点自己的体会.

在VC2005里面写代码,经常会出现LPWCSTR,LPWSTR,LPCSTR,LPSTR.这些指针不匹配的问题.

可以尽量用TCHAR来转换.

 TCHAR host[MAX_PATH];
 GetProfileString(_T("FTP Information"),_T("FTP Server Address"),NULL,host,MAX_PATH);
  CString m_host=host;

void CSettingScannerDlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
 // TODO: 在此添加消息处理程序代码和/或调用默认值
 CSliderCtrl *sliderCtrl=reinterpret_cast<CSliderCtrl *>(pScrollBar);
 if(SB_THUMBPOSITION == nSBCode)
 {
  switch (sliderCtrl->GetDlgCtrlID())
  {
   case IDC_CONTRAST_SLIDER:
    sliderCtrl->SetPos(nPos);
    m_contrast=nPos;
    break;
   case IDC_LIGHT_SLIDER:
    sliderCtrl->SetPos(nPos);
    m_light=nPos;
    break;
  }
  CString strLight=_T("");
  strLight.Format(_T("%d"),m_light);
  SetDlgItemInt(IDC_LIGHT_EDIT,m_light);
  SetDlgItemInt(IDC_CONTRAST_EDIT,m_contrast);
 }
 CDialog::OnHScroll(nSBCode, nPos, pScrollBar);
}

BOOL CSettingScannerDlg::OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult)
{
 // TODO: 在此添加专用代码和/或调用基类
 ASSERT(reinterpret_cast<NMHDR *>(lParam));
 NMHDR * pNMHDR=reinterpret_cast<NMHDR *>(lParam);
 MSG msg;
 
    if(GetMessage(&msg,GetSafeHwnd(),0,0))
    {
  if(pNMHDR->idFrom==IDC_LIGHT_SLIDER)
  {
   ASSERT(1==0x1);
   if(msg.message==WM_LBUTTONDOWN)
   //if(pNMHDR->code==WM_LBUTTONDOWN)
   {
    ::AfxMessageBox(_T("weqwe"));
    //static_cast<CSliderCtrl *>(GetDlgItem(IDC_LIGHT_SLIDER))->SetPos(wParam);
   }


  }
  pNMHDR=NULL;
    }
 return CDialog::OnNotify(wParam, lParam, pResult);

我已经解决了这个问题,可以这样写代码:

LPNMTREEVIEW pTreeView=reinterpret_cast<LPNMTREEVIEW>(lParam);

if(pTreeView->hdr.code==TVN_SELCHANGED)
 {

 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值