遇到一个问题,我想解决在对话框滑动块的问题/
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)
{
}
在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)
{
}
相关文章推荐
- lua递归函数的编写,为了解决一个游戏当中遇到的复杂问题
- Rails开始遇到的一个端口占用问题的解决方法
- CAD二次开发中遇到一个无法解决的问题
- Android中遇到问题时的解决方案:突出一个简单粗暴!Android Activity泄漏问题解决方案
- JAVA策略模式(3)之解决具体遇到的一个问题
- 一个项目中遇到的若干问题-提出问题-分析问题-解决问题
- 遇到的一个纠结的问题,等待解决中......
- C51中遇到一个有关data与xdata的问题,已解决
- 开发Struts 2项目遇到的一个问题,就是在struts-tags标签库下没有了s:datetimepicker标签的解决办法
- 安装Piwik时遇到的一个奇怪的关于PHP参数问题的解决办法
- 一个cocoapods问题的解决,希望能帮助到遇到类似情况的人
- 一个ButtonDemo序(遇到的问题,以及在大牛的帮助下,如何解决的。)
- 自己写一个app,遇到listview滑动卡顿的问题。
- 我遇到一个棘手的问题等待解决
- 遇到一个面向对象无法解决的问题。
- 今天遇到一个奇怪的问题!!无奈搞了半天也没解决,难道非要重装
- 今天遇到一个网页抖动的问题,不知道怎么解决才好?
- 禁止了gridview的滑动,并且解决了当一个滑动控件包裹这个gridview时,gridview只显示一行的问题
- rhce 第11题挂载一个nfs共享遇到的问题及解决办法
- 关于创建一个输入端和两个输出端遇到问题的解决