社区
C++ 语言
帖子详情
VC++ 双屏复制、扩展 的完整版源码
woai_quan
2014-03-31 04:30:34
跪求VC++ 双屏复制、扩展(c++编写) 的完整版源码;谁有,重谢
...全文
303
8
打赏
收藏
VC++ 双屏复制、扩展 的完整版源码
跪求VC++ 双屏复制、扩展(c++编写) 的完整版源码;谁有,重谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
gewinlu2008
2015-06-17
打赏
举报
回复
好好好,很好很好很好
gewinlu2008
2015-06-17
打赏
举报
回复
好东东,感谢。
cccccl
2014-12-26
打赏
举报
回复
void CScreenSaverDlg::OnBnClickedBtnClone() { // TODO: 在此添加控件通知处理程序代码 CDisplayInfo::SetDisplayMode(CDisplayInfo::DISPLAY_TYPE_CLONE); } BOOL CDisplayInfo::SetDisplayMode(int iType,BOOL ExChange/* =FALSE */) { WinVerDef osVer; if(GetOSVersion(&osVer)) { if(osVer==WIN_VER_WIN7) { OutputDebugString(TEXT("Win7")); SetDisplayModeWin7(iType,ExChange); } else { OutputDebugString(TEXT("Other OS")); SetDisplayModeXP(iType,ExChange); } return TRUE; } return FALSE; } BOOL CDisplayInfo::SetDisplayModeXP(int iType,BOOL ExChange/*=0*/) { DEVMODE dvm1; memset(&dvm1, 0, sizeof(dvm1)); dvm1.dmSize = sizeof(dvm1); DEVMODE dvm2; memset(&dvm2, 0, sizeof(DEVMODE)); dvm2.dmSize = sizeof(DEVMODE); TCHAR PriDevName[0x100]={0}; TCHAR AddDevName[0x100]={0}; DISPLAY_DEVICE DispDev; BOOL bRet = TRUE; ZeroMemory(&DispDev, sizeof(DISPLAY_DEVICE)); DispDev.cb = sizeof(DISPLAY_DEVICE); int i=0; int nOffset=0; BOOL bAnaly=FALSE; while(bRet) { bRet=EnumDisplayDevices(NULL,i,&DispDev,0); if(bAnaly==FALSE) { bAnaly=TRUE; if(1==AnalyCardType(DispDev.DeviceName))//只能是API显示卡 { return FALSE; } bAnaly=TRUE; } if(bRet) { if(DispDev.StateFlags&DISPLAY_DEVICE_PRIMARY_DEVICE) { _tcscpy_s(PriDevName,0x100,DispDev.DeviceName); bRet=EnumDisplaySettingsEx(DispDev.DeviceName,ENUM_CURRENT_SETTINGS,&dvm1,EDS_RAWMODE); } else if((DispDev.StateFlags&0xFFFF)<8) { _tcscpy_s(AddDevName,0x100,DispDev.DeviceName); } } i++; if(i==2) { break; } } if(i==1)//只有一个显示器,不能进行模式设置. { return FALSE; } dvm1.dmFields = DM_PELSWIDTH | DM_PELSHEIGHT | DM_POSITION ; dvm2.dmFields = DM_PELSWIDTH | DM_PELSHEIGHT | DM_POSITION ; //dvm2=dvm1; dvm2.dmPelsHeight=dvm1.dmPelsHeight; dvm2.dmPelsWidth=dvm1.dmPelsWidth; switch(iType) { case DISPLAY_TYPE_SINGLE: dvm2.dmPelsHeight=0;//设置成单显示器. dvm2.dmPelsWidth=0; break; case DISPLAY_TYPE_CLONE://当两个显示器同时有效时,偏移不重叠.克隆模式就不能直接设置. // dvm2.dmPelsHeight=10; // dvm2.dmPelsWidth=10; break; case DISPLAY_TYPE_EXTEND: nOffset=dvm1.dmPelsWidth;//强制横向向右扩展, break; default: break; } dvm1.dmPosition.x=0; dvm1.dmPosition.y=0; dvm2.dmPosition.x=nOffset; dvm2.dmPosition.y=0; CString Str; Str.Format(TEXT("Pri: %s (%d,%d,%d,%d)\r\n"),PriDevName,dvm1.dmPosition.x,dvm1.dmPosition.y, dvm1.dmPelsWidth,dvm1.dmPelsHeight); OutputDebugString(Str); Str.Format(TEXT("Add: %s (%d,%d,%d,%d)\r\n"),AddDevName,dvm2.dmPosition.x,dvm2.dmPosition.y, dvm2.dmPelsWidth,dvm2.dmPelsHeight); OutputDebugString(Str); if(ExChange && (iType==DISPLAY_TYPE_EXTEND || iType==DISPLAY_TYPE_SINGLE))//如果需要交换显示,则改变主显示器 { ChangeDisplaySettingsEx(PriDevName, &dvm2, NULL, CDS_NORESET | CDS_UPDATEREGISTRY , 0); ChangeDisplaySettingsEx(AddDevName, &dvm1, NULL, CDS_SET_PRIMARY | CDS_NORESET | CDS_UPDATEREGISTRY, 0); } else { ChangeDisplaySettingsEx(PriDevName, &dvm1, NULL, CDS_SET_PRIMARY | CDS_NORESET | CDS_UPDATEREGISTRY, 0); ChangeDisplaySettingsEx(AddDevName, &dvm2, NULL, CDS_NORESET | CDS_UPDATEREGISTRY , 0); } ChangeDisplaySettingsEx(NULL, NULL, NULL, 0, 0);//使有效 return TRUE; }
gz_qmc
2014-04-03
打赏
举报
回复
设备是用DC表示的 获取设备DC,数据COPY到DC就是了 比如三台设备,分别是显示器1,显示器2,打印机,投影机 那么 HDC dc1=CreateDC(显示器1驱动, 显示器1设备名, NULL, 初始化数据); HDC dc2=CreateDC(显示器2驱动, 显示器2设备名, NULL, 初始化数据); HDC dc3=CreateDC(打印机驱动, 打印机设备名, NULL, 初始化数据); HDC dc4=CreateDC(投影机驱动, 投影机设备名, NULL, 初始化数据); 假设,你操作的电脑桌面DC是 DeskTopDC 那么按屏幕大小BltBit(DestTopDC,...,dc1,...)会做吧?
woai_quan
2014-04-03
打赏
举报
回复
暂时不知道,老大让我写,
hejh001
2014-04-02
打赏
举报
回复
有点意思!这个要用在哪里?
woai_quan
2014-04-01
打赏
举报
回复
双屏复制就是使两个显示器显示相同的类容,就是同步显示,和投影仪那种感觉一样
LongRui888
2014-03-31
打赏
举报
回复
双屏复制 是什么意思
Windows下
双屏
各种设置的V
C++
实现(完整
源码
工程)
详见 http://blog.csdn.net/phmatthaus/article/details/50219409
c/
c++
成长之捷径
c++
成长之路不再迷茫! 不知不觉中进入计算机行业已有多个年头了,回首往事依然历历在目。今天我把我这段时间收集的书籍资料以及实例
源码
帖出来(部分资料太大了放不上去,理解下),与大家一起分享,我想其中的一些资料对大家会有帮助,并且我希望这些资料以及实例
源码
能对大家有一定的提升作用。帮助初学者快速进入V
C++
并且能融会贯通,那么我的目的也就达到了。 首先推荐的视频教
Microsoft Visual
C++
14.0完整安装包与配置指南
Microsoft Visual
C++
14.0 是微软推出的重要
C++
开发工具集,内嵌于 Visual Studio 2015 中,标志着 Windows 平台原生开发的重大升级。它不仅全面支持
C++
11 标准,并引入了对
C++
14 特性的初步支持,极大增强了语言表达能力和开发效率。其核心组件包括编译器(CL.EXE)、链接器(LINK.EXE)、标准库实现(STL)以及 ATL/MFC 框架,构成了完整的本地与混合编程开发链条。
OpenCV 2.4.13 x64版完整开发包与核心技术解析
错误现象可能原因解决方案使用了x86库但项目设为x64检查lib路径和V
C++
目录设置动态库dll未拷贝到输出目录将
复制
到exe同级目录内存泄漏持续增长多线程中频繁创建/销毁cv::Mat启用OpenCV内置内存池或复用Mat对象图像加载失败但路径正确缺少image codec插件链接模块或确保plugins存在🔧 更进一步,建议开启OpenCV的日志调试模式:// 出错时中断调试。
C++
实现鼠标坐标实时获取的多种方法详解
在现代应用程序开发中,实时获取鼠标位置信息是实现用户交互、自动化操作和界面响应的关键技术之一。特别是在桌面级应用、游戏外挂、自动化测试工具以及辅助功能软件中,准确捕获鼠标当前坐标具有重要的实践价值。本章将从整体视角介绍
C++
环境下获取鼠标坐标的必要性、应用场景及技术路线。我们将探讨Windows平台原生API与跨平台GUI框架之间的差异,并明确后续章节的技术演进路径——从基础的单次坐标读取到全局事件监听,再到多线程环境下的高效捕获机制。
C++ 语言
65,208
社区成员
250,517
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章