您的位置:首页 > 其它

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

2007-10-26 12:46 288 查看
在看我的代码之前给大家提供一点自己的体会.

在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)
{

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐