首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> VC >> 關於VC++

MFC 繪圖模式設定:SetROP2 前景混合模式詳解

     編輯:關於VC++

SetROP2 函數原型

int SetROP2(
    HDC hdc,          // 裝置內容句柄
    int fnDrawMode    // 繪圖混合模式
);

常用混合模式常數

常數說明
R2_BLACK全黑
R2_WHITE全白
R2_NOP無操作(保留原像素)
R2_NOT反相(邏輯非)
R2_COPYPEN直接複製筆刷色彩(預設)
R2_XORPEN筆色與背景 XOR(橡皮筋效果常用)
R2_NOTCOPYPEN複製筆色後反相
R2_MERGEPENNOT筆色 OR (NOT 背景)
R2_MASKPEN筆色 AND 背景
R2_NOTMASKPEN(筆色 AND 背景) 後反相

應用場景

  • R2_XORPEN:繪製可移動、可擦除的橡皮筋選框、游標軌跡
  • R2_NOT:螢幕區域反相、負片效果
  • R2_MASKPEN:與遮罩配合實現非矩形繪圖

MFC 封裝用法

CDC* pDC = GetDC();
int nOldMode = pDC->SetROP2(R2_XORPEN);
// 繪圖操作...
pDC->SetROP2(nOldMode); // 恢復原模式
ReleaseDC(pDC);

混合模式屬於 DC 狀態,用畢必須還原,避免影響後續繪圖。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved