• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:マルチモニタのデスクトップイメージを取るには?)

マルチモニタのデスクトップイメージを取得する方法

このQ&Aのポイント
  • VisualC++を使用してマルチモニタのデスクトップイメージを取得する方法について調べています。
  • シングルモニタの場合には成功していますが、マルチモニタではメインモニタのイメージのみが取れて、サブモニタのイメージは取得できません。
  • rectにもメインモニタのサイズが入っているため、左側のモニタのイメージを取得する方法を知りたいです。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

 こんばんは。  当方のPCはモニターが一台なので試し様が無いのですが、  http://msdn.microsoft.com/ja-jp/library/cc428502.aspx  によれば、  //モニターの台数分だけ呼ばれる筈 BOOL CALLBACK MonitorEnumProc(HMONITOR hMonitor, HDC hdcMonitor, LPRECT lprcMonitor, LPARAM dwData) { MONITORINFOEX miex; miex.cbSize = sizeof(miex); ::GetMonitorInfo(hMonitor, &miex); if(miex.dwFlags == MONITORINFOF_PRIMARY) { //主モニター } //hdcMonitorからスクリーンショットを取る return TRUE; } static void ScreenCopy() { HDC hDC = GetDC(NULL); ::EnumDisplayMonitors(hDC, NULL, &::MonitorEnumProc, 0); ::ReleaseDC(NULL, hDC); }  の様にすると出来るのではないでしょうか。

chachakabu
質問者

お礼

お返事ありがとうございました。 コンパイルする際に、HMONITORがなかったり、リンクするときに、GetMonitorInfoがなかったり(user32.libをリンクするだけではだめ)と苦労しましたが、出来ました! 上記に上げていただいたサンプルプログラムは、大変、役に立ちました。 ありがとうござました。

関連するQ&A