程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> view窗口透明作圖-MFC view窗口透明設置

view窗口透明作圖-MFC view窗口透明設置

編輯:編程綜合問答
MFC view窗口透明設置

基於MFC單文檔程序,設置2個工具按鈕,一個使畫圖背景為默認模式,另一個使view窗口透明直接在桌面作圖。。。默認啟動時只顯示工具欄

我的做法是開始設置 view Precreatewindow cs

cs.lpszClass=AfxRegisterWndClass(CS_HREDRAW |CS_VREDRAW);// view背景透明 只顯示工具欄。這個功能Ok。

onbutton1: 加載一個類似默認背景白色的圖片。。這個功能也ok。

Onbutton2: 要怎麼去實現透明,實現桌面畫圖呢。??

運行後要在button1 button2切換時窗口也切換。。

各位大俠指導下啊,,我是新手。。。萬分感激!!!

最佳回答:


試一下MFC屏幕標記之透明窗體(一)
//點擊按鈕實現窗口透明函數
void CScreenMarkerDlg::OnButtonTransparent()
{
HINSTANCE hInst = GetModuleHandle("User32.dll");
if (hInst)
{
//獲取模塊裡的函數
BOOL (WINAPI SetLayeredWindowAttributes)(HWND,COLORREF,BYTE,DWORD)=
(BOOL (WINAPI
) (HWND,COLORREF,BYTE,DWORD))GetProcAddress(hInst,"SetLayeredWindowAttributes");
//函數指針正確獲取
if(SetLayeredWindowAttributes)
{
//讓窗口具透明的特性
::SetWindowLong(m_hWnd,GWL_EXSTYLE, GetWindowLong(m_hWnd,GWL_EXSTYLE)|WS_EX_LAYERED);

//設置窗口透明。第4參數為1時,第二個參數是被透明的顏色
SetLayeredWindowAttributes(m_hWnd,GetSysColor(COLOR_3DFACE),0,0x1);
}
FreeLibrary(hInst); //釋放調模塊句柄
}
}


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved