VC++源码 源码 //注意事项 ===============================================> //先执行 OnInitDialog()函数,然后执行构造函数! //98 下没有新宋体 //XP 下窗口高度加 8 //滚动条处理方法 ***************************************************************** ***** //1,设置范围 m_spscroll.SetScrollRange(0,200); SCROLLINFO si; si.cbSize=sizeof(SCROLLINFO); si.nPage=100; si.fMask=SIF_PAGE;//设置页宽 m_spscroll.SetScrollInfo(&;si); //2,处理消息,垂直滚动条加 WM_VSCROLL 消息,水平加 WM_HSCROLL 消息 void CPrintView::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) { // TODO: Add your message handler code here and/or call default if(pScrollBar->GetDlgCtrlID()==IDC_SCROLLBAR1) { int nCurrentPos=pScrollBar->GetScrollPos(); SCROLLINFO si; si.fMask=SIF_PAGE;//取得页宽 pScrollBar->GetScrollInfo(&;si); switch(nSBCode) { case SB_THUMBTRACK://移动滑块 case SB_THUMBPOSITION: pScrollBar->SetScrollPos(nPos);//注意,设置页宽后滚动条的 pos 会以 max/nPage 倍数 减少,所以在使用时注意把 pos 值*(max/nPage)才能得到原值 break; case SB_LINEUP://点向上小三角 pScrollBar->SetScrollPos(nCurrentPos-1); break; case SB_LINEDOWN://点向下小三角 pScrollBar->SetScrollPos(nCurrentPos+1); break; case SB_PAGEUP://向上一页 pScrollBar->SetScrollPos(nCurrentPos-si.nPage); break; case SB_PAGEDOWN://向下一页
pScrollBar->SetScrollPos(nCurrentPos+si.nPage); break; } } CDialog::OnVScroll(nSBCode, nPos, pScrollBar); } //锁定鼠标 ***************************************************************** *********** bool pOld; CRect rt; SetForegroundWindow(); SystemParametersInfo(SPI_SETSCREENSAVERRUNNING,true,&;pOld,SPIF_UPDAT EINIFILE); GetWindowRect(rt); ClipCursor(rt); //加到 LRESULT CLockDlg::WindowProc(UINT message, WPARAM wParam, LPARAM lParam) 会有意外的效果 //在列表字符前插入一个负数字符以修改乱码 ****************************************************** int index=m_list.GetSelectionMark();//在列表字符前插入一个负数字符以修改乱码 CString cs; cs=m_list.GetItemText(index,0); char insert_char=-87; cs.Insert(0,insert_char); m_list.SetItemText(index,0,cs); //在列表中添加项目最大只能显示 259 个字符(不含'\0') ************************************************* int char_length=cs.GetLength();//cs,ct 为 CString 类对象,是要发到
列表框的文本但是 可能大于 259 字节 while(char_length>259)//如果大于 259 字节 { ct=cs.Left(259); m_list.InsertItem(0,ct);//在列表中添加项目最大只能显示 259 个字符(不含'\0') cs=cs.Right(char_length-259); char_length=cs.GetLength(); } m_list.InsertItem(0,cs);//在列表中添加项目最大只能显示 259 个字符(不含'\0') //<
================================================== ======== //设置 NT 窗口的透明度******************************************* OSVERSIONINFO osv; osv.dwOSVersionInfoSize=sizeof OSVERSIONINFO; GetVersionEx(&;osv);/
/取得版本信息 if(osv.dwPlatformId==VER_PLATFORM_WIN32_NT)//VER_PLATFORM_WIN32_WI NDOWS 98 Me 用这个宏 { //加入 WS_EX_LAYERED 扩展属性 SetWindowLong(this->GetSafeHwnd(),GWL_EXSTYLE, GetWindowLong(this->GetSafeHwnd(),GWL_EXSTYLE)^0x80000);//如果多次调用 下面这个函数设置,这个函数只在一个位置调用一次就行了 HINSTANCE hInst = LoadLibrary(