我该如何“画画”使用WINAPI32在多个屏幕上? [英] How do I "draw" on multiple screens using WINAPI32?

查看:61
本文介绍了我该如何“画画”使用WINAPI32在多个屏幕上?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经编写了以下功能来生成一个假的蓝屏死机(BSOD) - 它可以在一台显示器上运行良好。我不确定处理多台显示器的最佳方法是什么。



I have written the below function to generate a fake blue screen of death (BSOD) - which works well on a single monitor. I am not sure what is the best way to go about dealing with multiple monitors.

void BSOD(){
	
     HDC        hdcScr, hdcMem, hdcOrig ;
     int        cx, cy, lines ;
     HBITMAP    hBitmap, hOriginal ;
     HWND       hwnd ;
	 RECT rect;
     HFONT hFont = CreateFont(
                   27, 16, 0, 0,FW_NORMAL, FALSE, FALSE, FALSE,
                   ANSI_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,
                   DEFAULT_QUALITY,DEFAULT_PITCH|FF_ROMAN,"Courier New"
             );

     if (LockWindowUpdate (hwnd = GetDesktopWindow ())){
          hdcScr  = GetDCEx (hwnd, NULL, DCX_CACHE | DCX_LOCKWINDOWUPDATE) ;
          hdcMem  = CreateCompatibleDC (hdcScr) ;
          hdcOrig  = CreateCompatibleDC (hdcScr) ;
          
          cx      = GetSystemMetrics (SM_CXSCREEN) ;
          cy      = GetSystemMetrics (SM_CYSCREEN);
          hBitmap = CreateCompatibleBitmap (hdcScr, cx, cy) ;
          hOriginal = CreateCompatibleBitmap (hdcScr, cx, cy) ;
          rect.top = 0;
	  rect.left = 0;
	  rect.right = cx;
	  rect.bottom = cy;
			
          SelectObject (hdcMem, hBitmap) ;
          FillRect(hdcMem, &rect, CreateSolidBrush(RGB(0,0,0x77)));
          SelectObject(hdcMem, hFont);
          SetTextColor(hdcMem,RGB(0xFF,0xFF,0xFF));
          SetBkColor(hdcMem,RGB(0,0,0x77));    
       
	  lines = 18;
          while(lines--) write_out(hdcMem,lines);
		  
	  BitBlt (hdcScr, 0, 0, cx, cy, hdcMem,  0,  0, SRCCOPY) ;

	  Sleep(5000);
	  BitBlt (hdcScr, 0, 0, cx, cy, hdcOrig,  0,  0, SRCCOPY) ;
          
          DeleteDC (hdcMem) ;
          ReleaseDC (hwnd, hdcScr) ;
          DeleteObject (hBitmap) ;
             
          LockWindowUpdate (NULL) ;
     }
     return ;
}

推荐答案

我发表了一篇关于多监视器Windows 问题和一些有用的任务如何处理它。



我希望这是一个笑话,不要激动一些人可能会非常恐惧; - )
I publish an article about Multimonitor Windows issues and some useful tasks how to deal with it.

I hope it is a joke, dont ferget that some people may get very terrified ;-)


这篇关于我该如何“画画”使用WINAPI32在多个屏幕上?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆