问大家个比较简单的问题哈!有用的回复本人必散分!

hustbingdian 2010-04-23 09:52:46
1.
GetSystemMetrics(SM_CMONITORS);//为什么我明明主机接着两个显示器,可是这个函数给我返回的是1啊?

2.EnumDisplayDevices与EnumDisplayMonitor的区别,我怎么有点分不清啊,二者分别在什么情况下用啊?


(因为我本人的分数也不多了,所以只能先给出这些分数,大家不要闲低啊!)
...全文
201 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
尹成 2010-04-24
  • 打赏
  • 举报
回复
Microsoft为支持多显示器模式提供了一些新的API调用,下面具体介绍它们的功能:
  1.HMONITOR MonitorFromPoint(POINT pt,DWORD dwFlags)
  MonitorFromPoint返回包含特定点(pt)的一个显示器句柄。如果pt不属于任何一个显示器,返回的显示器句柄由dwFlags标志决定:MONITOR_DEFAULTTONULL时返回NULL,MONITOR_DEFAULTTOPRIMARY时返回代表主显示器的HMONITOR句柄,MONITOR_DEFAULTTONEAREST时返回最靠近pt点的显示器的HMONITOR句柄。 2.HMONITOR MonitorFromRect(LPCRECT lprc,DWORD dwFlags)
  MonitorFromRect返回包含lprc代表的矩形的显示器句柄;如果包含此矩形的显示区域不止一个,则返回包含矩形最大部分的显示器句柄;如果矩形不属于任何一个显示区域,返回的句柄由dwFlags决定,规则与MonitorFromPoint相同。
  3. HMONITOR MonitorFromWindow(HWND hwnd,DWORD dwFlags)
  与MonitorFromRect类似,但输入是一个代表窗口的句柄hwnd而不是指向矩形的指针。
  4. BOOL GetMonitorInfo(HMONITOR hMonitor,LPMONITORINFO lpmi)
  GetMonitorInfo返回由hMonitor代表的显示器的有关信息,这些信息存储在指向MONITORINFO结构的指针——lpmi中。这些信息包括用RECT结构表示的显示器的显示区域的大小(如果这个显示器不是主显示器,RECT的坐标可能为负数),以及用RECT结构表示的显示器的工作区域的大小,工作区域是显示区域中除去系统任务栏和应用程序快捷方式栏所剩下的区域,还能够判断此显示器是否为主显示器,并返回一个标志。
  5.BOOL EnumDisplayMonitors(HDC hdc,LPCRECT lprcClip,MONITORENUMPROC lpfnEnum,LPARAM dwData)
  hdc是一个代表显示设备环境的句柄,lprcClip是指向一个矩形区域的指针。把这个矩形区域和设备环境中的可见区域取交集,得到的区域可能分布在多个显示器的显示区域中,EnumDisplayMonitors对每一个包含交集的显示区域调用一次MonitorEnumProc类型的函数。DwData为传递给MonitorEnumProc函数的数据。
  6.BOOL CALLBACK MonitorEnumProc(HMONITOR hmonitor,HDC hdcMonitor,LPRC lprcMonitor, DWORD dwData)
  MonitorEnumProc是一个被EnumDisplayMonitors函数调用的回调函数,它的内容可以由用户自定义。利用这两个函数,用户在进行跨多个显示器的显示时就可以利用每一个显示器的不同的显示特性。
  当然,并不是所有画图程序都必须调用这两个函数,这时你假设所有的显示器都使用同样颜色的分辨率。
  7.EnumDisplayDevices(LPVOID lpReserved,int iDeviceNum,DISPLAY_DEVICE×pDisplayDevice,DWORD dwFlags)
  EnumDisplayDevices列出系统中某个显示设备(以iDeviceNum为序号)的信息。与GetMonitorInfo相比,GetMonitorInfo对应的显示器必须是Windows虚拟桌面的一部分,而EnumDisplayDevices可以列出包括处于独立显示模式下的系统所安装的所有显示器的信息。它返回的信息储存在DISPLAY_DEVICE结构中,包括显示设备名称、对显示设备的描述和显示设备的状态。
  此外,一些原有的API调用如SystemParametersInfo和GetSystemMetrics也加入了对多显示器模式的支持。比如调用GetSystemMetrics时,如果用SM_XVIRTUALSCREEN、SM_YVIRTUALSCREEN、SM_CXVIRTUALSCREEN和SM_CYVIRTUALSCREEN,得到的是虚拟桌面左上角的坐标和整个的长度和宽度。
  我们在编程时特别要注意坐标的变化:首先单显示器下负坐标或大于SM_CXSCREEN和SM_CYSCREEN部分的窗口将被隐藏,而在多显示器模式下这些都是合法的。其次在确定应用程序窗口和对话框的位置时,要选择正确的显示器和正确的全局坐标(虚拟桌面坐标)。最后,在恢复原来存储的窗口之前,要检查一下这些窗口坐标的有效性。
#undef GetMonitorInfo
#undef GetSystemMetrics
#undef MonitorFromWindow
#undef MonitorFromRect
#undef MonitorFromPoint
#undef EnumDisplayMonitors
#undef EnumDisplayDevices
mngzilin 2010-04-23
  • 打赏
  • 举报
回复
写在前面的话: 最近一直在做站点,所以常用到ewebeditor,可是最近这几天在研究6.2的过程时发现我们被狠狠的忽悠了一把, 从4.8到5.2,我个人认为全是ewebeditor的炒做放出的东西,由其是5.2我发现决对是官方放出的东西,很晕, 没想到自己被别人利用了,也罢,怎么着也在用别人的东西!6.2版现在加上了验证,并且,ewebeditor现在把 整体代码做了很大的改动,改动起来很麻烦,本人也很菜,所以本人决定从这版后将不研究ewebeditor。 以下是本次更新内容 原程序:网上所谓的5.5商业版(屁!!!!) 2009年5月22日更新: 先说明一下,本次调整后你的编辑器必需放到站点的子目录下,因为后台设置上传路径时相对于uploadfile.asp 的上层,怕有先人不明白,我作个例: 如:我的编辑器主目录是主站下的editor目录,我在后台设置上传目录时与editor目录同级。也就是在主目录下 1、补齐所有语言包,后台可选语言包。 2、调整了一下文件结构,使结构更清晰。 3、自行编写了include/style.asp来读取样式设置及工具栏从而不用生成js文件了!本来5.2时候我后来也是这样 做的,6.2发现官方也是这样,所以就也参照了一下! 4、调整主文件即ewebeditor.htm不能改名的,后来发现原来可以改,只是会导致编辑器目录出错,而导致找不到样式。 注意:主文件名必需是.asp,因为主文件内这我做了一下判断编辑器的目录操作。如果怕别人得知道,你也可以这样, 把主文件名改为Easy.Editor.Asp,然后在你的服务器IIS默认文档内加文档为Easy.Editor.Asp 例:如我的编辑器在Editor目录下,其它文件调时/Editor?id=content1&style=standard650&skin=office2003 5、修改原文件不会自动创建主目录,现在你可以在不超出本站范围内任意地方建主上传目录了。 6、当后台设置上传目录为../../../../../等等时,可以会导致上传超出本站,那就麻烦了,所以这版你不用担心了,你在 多也只能是主目录下。 7、同5.2一样,本次uploadfile.asp增加了完全禁止上传的文件后辍,在uploadfile.asp顶部设置!但本次修改是不会弹出 “当前文件类型被本站完全禁用”的话语,而是我直接将被更改的后台设置图片后辍替换掉,直接“弹出类型不正确”。 因为除非他改后台的上传文件类型,不然如asp类文件他上传不上去,所以在初始上传时就进行类型过滤! 8、同5.2一样,本次uploadfile.asp增加了上传文件内容检测,不过本次更改更新了很多,发现有恶意代码文件时则直接删 除并且在主目录下的check.log里记录上传者的信息及文件名,并记录是否删除。并且,本次修改后的像以前弹出的 "超过三次禁止访"类,是真的做了,不信,你把某一asp木马后辍改为.jpg,然后上传上三次,看会怎样,如果被禁了, 也不要着急,其实是做了cookies,你清除一下cookies即可了。 9、增加上传文件名是否为原文件名上传功能,后台可以设置,如后台设为原文件名上传时,所有上传的文件将以原文件名上传 ,当服务器中存在已上传的同名文件时,则自动在文件名后增加_5位随机码。 也可选为用户控制,你可以在前台弹出的上传框中看到。 10、增加前台界面可选是否生成缩略图选顶!不用多说了吧! 11、新增也是我认为很有用的一个功能,即远程获取图片时的高宽限制功能,后台可以设置 本意是相通过简单的asp语言来实现获取远程图片高宽的,但是发现没那么简单,就利用了aspjpeg和fso组件,也就是说 这个功能如果没有这两个组件并存,那不用使用。当图片小于限定的时,将不进行本地化。 如果获取某个网页时,这个功能会很有用,下来的图片就是符合条件的图片,没有小的不能在小的图片! 12、一个很重要的更改,以前官方的所谓自定目录不能严格的称为自定目录,只能称为相对自定目录,是相对于你设定的上传 目录,本次调整完全调整为本站范围内任意目录。 13、修改了弹出式上传功能,详细可以看演示,你可以设定上传自定目录及是否强制使用原文件名上传,当然,你后台必需设为 前台用户控制时方可强制使用原文件名上传。 14、N多小调整及修改就不多说了!就到这! 最后的话: 下载最好到http://www.nmyxwl.cn上下载,别的地方不保你的是不是我修改的正式版 为了纪念,本次将所有的ewebeditor的版权全改为easyeditor了,呵呵,不要骂我,毕竟是收山之作了! 最后有到http://www.nmyxwl.cn上留言我会及时看并回复的!谢谢合作 记住:我们是易讯网络,内蒙古易讯网络,如果有网站制作方面的事情可于我联系!

7,540

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 VC.NET
社区管理员
  • VC.NET社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧