VC++ 通過剪切板獲得文檔中的圖片

				// 利用剪切板獲得圖片
				// 打開剪切板(佔用狀態,此時進行復制粘貼等操作將無效果)
				OpenClipboard(NULL);
				// 清除剪切板內容
				EmptyClipboard();
				// 不關閉則複製操作不起作用,無法複製到剪切板裏
				CloseClipboard();

				// 取得第一張圖
				shape = shapes.Item(1);
				shape.Select();
				// 複製到剪切板
				selection.CopyAsPicture();

				// 打開剪切板,並且剪切板裏存在圖片
				if (OpenClipboard(NULL) &&
					IsClipboardFormatAvailable(CF_BITMAP))
				{
					// 取得剪切板中的圖片數據
					HGLOBAL hClipBoard = GetClipboardData(CF_BITMAP);
					if (hClipBoard)
					{
						//從剪貼板中取出一個內存的句柄
						// 獲取內存大小
						int nSize = GlobalSize(hClipBoard);
						//對內存塊進行加鎖,將內存句柄值轉化爲一個指針,並將內存塊的引用計數器加一,內存中的數據也返回到指針型變量中
						data.pchPic = new char[nSize];
						memcpy(data.pchPic, GlobalLock(hClipBoard), nSize);
						// 將數據存儲
						//將內存塊的引用計數器減一
						GlobalUnlock(hClipBoard);
						//關閉剪貼板,釋放剪貼板資源的佔用權
						CloseClipboard();
					}
				}
			}
發佈了21 篇原創文章 · 獲贊 1 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章