mfc設定半透明對話方塊

2021-08-28 14:42:28 字數 2310 閱讀 9028

涉及到的函式如下:

1setwindowlong

2 getsafehwnd

3 getwindowlongptr

4 setlayeredwindowattributes

一、

long setwindowlong(

hwnd hwnd,

int nindex,

long dwnewlong

);

setwindowlong是乙個windows api函式。該函式用來改變指定視窗的屬性.函式也將指定的乙個32位值設定在視窗的額外儲存空間的指定偏移位置。

指定將設定的大於等於0的偏移值。有效值的範圍從0到額外類的儲存空間的位元組數減4:例如若指定了12或多於12個位元組的額外視窗儲存空間,則應設索引位8來訪問第三個4位元組,同樣設定0訪問第乙個4位元組,4訪問第二個4位元組。要設定其他任何值,可以指定下面值之一:

常量常量值

意義gwl_exstyle

-20設定乙個新的擴充套件風格。

gwl_hinstance

-6設定乙個新的應用程式例項控制代碼。

gwl_id

-12設定乙個新的視窗識別符號。

gwl_style

-16設定乙個新的視窗風格。

gwl_userdata

-21設定與視窗有關的32位值。每個視窗均有乙個由建立該視窗的應用程式使用的32位值。

gwl_wndproc

-4為視窗設定乙個新的處理函式。

gwl_hwndparent

-8改變子視窗的父視窗,應使用setparent函式。

當hwnd引數標識了乙個對話方塊時,也可使用下列值:

常量常量值

意義dwl_dlgproc

dwlp_msgresult + sizeof(lresult) (值:4)

設定對話方塊過程的新位址。

dwl_msgresult

0設定在對話方塊過程中處理的訊息的返回值。

dwl_user

dwlp_dlgproc + sizeof(dlgproc) (值:8)

設定的應用程式私有的新的額外資訊,例如乙個控制代碼或指標。

指定的替換值。

dwnewlong中可以使用以下一些列表控制項的專用風格:

lvs_icon lvs_smallicon lvs_list lvs_report

這四種風格決定控制項的外觀,同時只可以選擇其中一種,分別對應:

大圖示顯示,小圖示顯示,列表顯示,詳細報表顯示

lvs_editlabels 結點的顯示字元可以被編輯,對於報表風格來講可編輯的只為第一列。

lvs_showselalways 在失去焦點時也顯示當前選中的結點

lvs_singlesel 同時只能選中列表中一項

如果函式成功,返回值是指定的32位整數的原來的值。如果函式失敗,返回值為0。若想獲得更多錯誤資訊,請呼叫getlasterror函式。

如果指定32位整數的原來的值為0,並且函式成功,則返回值為0,但是函式並不清除最後的錯誤資訊,這就很難判斷函式是否成功。這時,就應在呼叫setwindowlong之前呼叫setlasterror(0)函式來清除最後的錯誤資訊。這樣,如果函式失敗就會返回0,並且getlasterror。也返回乙個非零值。

二、getsafehwnd,計算機語言函式。用於得到視窗指標控制代碼。

四、此函式用於設定分層視窗透明度,常和 updatelayeredwindow 函式結合使用。

bool setlayeredwindowattributes(

hwnd hwnd, // 指定分層視窗控制代碼

colorref crkey, // 指定需要透明的背景顏色值,可用rgb()巨集

byte balpha, // 設定透明度,0表示完全透明,255表示不透明

dword dwflags // 透明方式

其中,dwflags引數可取以下值:

lwa_alpha時:crkey引數無效,balpha引數有效;

lwa_colorkey:窗體中的所有顏色為crkey的地方將變為透明,balpha引數無效。

lwa_alpha | lwa_colorkey:crkey的地方將變為全透明,而其它地方根據balpha引數確定透明度。

MFC 設定對話方塊位置

今天想寫個程式,需要對話方塊在螢幕的右下角。懶得想就去網上搜搜,不過卻沒找到什麼好的。大部分都是給個函式movewindow,或者setwindowpos卻不給大家寫用法。比如怎麼的到對話方塊的大小等等!反正就是不方便向我一樣新手學習。所以我今天就獻醜了,把這寫出來。雖然沒什麼難度,高手可不要鄙視阿...

mfc 子對話方塊控制父對話方塊 MFC對話方塊構架程式

遺憾的是 從來沒有被堅定選擇過,就像是,他只是剛好需要,你只是剛好在。網易雲熱評 一 對話方塊架構分類 1 模式對話方塊,彈出來不能進行其他操作 2 無模式對話方塊,彈出來後可以進行其他操作 二 新建win32應用程式 模式對話方塊 1 建立 2 修改屬性 3 新增dialog資源 4 包含標頭檔案...

MFC 對話方塊

1 建立對話方塊模板,設定對話方塊屬性 cadditionddlg 主對話方塊類 顯示的主要介面 addition的資源樹 4個子項 dialog 對話方塊 含有2個對話方塊模板 id為idd aboutbox 關於對話方塊模板 idd addtion dlalog 主對話方塊模板 lcon 圖示 ...