1. 程式人生 > >vc++開發簡單的半透明視窗程式示例

vc++開發簡單的半透明視窗程式示例

環境:xp  vc6.0

1: 開啟vc,依次點選 檔案 -> 新建 -> 工程 -> MFC AppWizard {exe} ,填寫工程名test  -> 確定 -> 基本對話方塊 -> 完成

2: 開啟 Test2Dlg.cpp 找到 OnInitDialog()函式,註釋掉函式中的內容,

   新增以下程式碼:

        //加入WS_EX_LAYERED擴充套件屬性
	SetWindowLong(this->GetSafeHwnd(),GWL_EXSTYLE,
	GetWindowLong(this->GetSafeHwnd(),GWL_EXSTYLE)^0x80000);
	HINSTANCE hInst = LoadLibrary("User32.DLL");
	if(hInst)
	{
		typedef BOOL (WINAPI *MYFUNC)(HWND,COLORREF,BYTE,DWORD);
		MYFUNC fun = NULL;
		//取得SetLayeredWindowAttributes函式指標
		fun=(MYFUNC)GetProcAddress(hInst, "SetLayeredWindowAttributes");
		if(fun){
			fun(this->GetSafeHwnd(),0,128,2);//實現半透明效果
		}
		FreeLibrary(hInst);
	}
最後函式OnInitDialog()的程式碼段為
BOOL CTestDlg::OnInitDialog()
{
	
	//加入WS_EX_LAYERED擴充套件屬性
	SetWindowLong(this->GetSafeHwnd(),GWL_EXSTYLE,
	GetWindowLong(this->GetSafeHwnd(),GWL_EXSTYLE)^0x80000);
	HINSTANCE hInst = LoadLibrary("User32.DLL");
	if(hInst)
	{
		typedef BOOL (WINAPI *MYFUNC)(HWND,COLORREF,BYTE,DWORD);
		MYFUNC fun = NULL;
		//取得SetLayeredWindowAttributes函式指標
		fun=(MYFUNC)GetProcAddress(hInst, "SetLayeredWindowAttributes");
		if(fun){
			fun(this->GetSafeHwnd(),0,128,2);//實現半透明效果
		}
		FreeLibrary(hInst);
	}



	/*
	CDialog::OnInitDialog();

	// Add "About..." menu item to system menu.

	// IDM_ABOUTBOX must be in the system command range.
	ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
	ASSERT(IDM_ABOUTBOX < 0xF000);

	CMenu* pSysMenu = GetSystemMenu(FALSE);
	if (pSysMenu != NULL)
	{
		CString strAboutMenu;
		strAboutMenu.LoadString(IDS_ABOUTBOX);
		if (!strAboutMenu.IsEmpty())
		{
			pSysMenu->AppendMenu(MF_SEPARATOR);
			pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
		}
	}

	// Set the icon for this dialog.  The framework does this automatically
	//  when the application's main window is not a dialog
	SetIcon(m_hIcon, TRUE);			// Set big icon
	SetIcon(m_hIcon, FALSE);		// Set small icon
	
	// TODO: Add extra initialization here
	*/
	
	return TRUE;  // return TRUE  unless you set the focus to a control
}

3:編譯執行,結果截圖如下


相關推薦

vc++開發簡單透明視窗程式示例

環境:xp  vc6.0 1: 開啟vc,依次點選 檔案 -> 新建 -> 工程 -> MFC AppWizard {exe} ,填寫工程名test  -> 確定 -> 基本對話方塊 -> 完成 2: 開啟 Test2Dlg.cpp 找

透明視窗中顯示標準控制元件(控制元件與文字不透明)的實現方案(附原始碼)

原文 http://blog.csdn.net/harbinzju/article/details/7907127 和大家分享一下在半透明視窗中顯示標準控制元件的實現方案。通過層疊視窗可以簡單實現半透明與不規則形狀視窗的效果,但在其上顯示標準控制元件(控制元件與文字不

桌面透明視窗程式渲染

        市面上基本所有的3D遊戲都依賴一個普通的windows視窗,包含標題欄、邊框、最小化、最大化、關閉按鈕。視窗的大小決定了玩家可視的遊戲空間,整個視窗的畫素都被遊戲內容填充滿,視窗背景不是透明的。渲染時,只要建立一個主渲染緩衝區,將各元素渲染在上面,再顯示就可

VS2013下 開發簡單的MFC小程式

這是博主的第一篇部落格,記錄自習一天MFC框架完成一個小程式GUI的歷程。 工具:VS2013+www.baidu.com+已完成的控制檯程式程式碼 一、畫圖 首先,選擇檔案-新建-專案,選擇MFC專案 左下角填寫名稱,確定,選擇基於對話方塊 在資源檢視下,在

css3基礎 color:rgba 文字顏色透明 簡單示例

學習 logs school con har win src 文字顏色 www 禮悟:   公恒學思合行悟,尊師重道存感恩。葉見尋根三返一,江河湖海同一體。 虛懷若谷良心主,願行無悔給最苦。讀書鍛煉養身心,誠勸且行且珍惜。   

Windows API程式設計——最簡單視窗程式框架示例

 用Windows API實現一個自定義視窗也需要這麼一大堆最基本的程式框架: #include <windows.h> static LPCTSTR lpszAppName = "windows API 視窗示例";//視窗名稱 HBRUSH hBlueB

vc++ 開發程式不定時崩潰怎麼定位?minidump 來幫你

vc++ 開發的程式不定時崩潰怎麼定位?minidump 來幫你   在程式開始的地方設定結構化異常處理函式 //Add UnhandledExceptionFilter; SetUnhandledExceptionFilter(CrashUnhandledException

服務計算——開發簡單 web 服務程式 cloudgo

文章目錄 服務計算——cloudgo 1. 基本任務——搭建簡單web伺服器 1.1 框架選擇 1.2 程式碼 1.2.1 main.go 1.2.2 serve

一個簡單的檔案壓縮程式——在cmd視窗的實現。

在C primier plus 13.3章節中,介紹了一個簡單壓縮程式,程式碼如下: #include<stdio.h> #include<stdlib.h> #include<string.h> #define LEN 40 int main(int ar

spring boot 環境下websocket 開發簡單示例

示例如下,需要注意的是, 類上需要打上@Scope("prototype")註解,否則socket就是單例的 socket的configurator屬性的配置類需要實現ApplicationContextAware,和程式碼裡面一樣的配置之後,server裡面才能成功注入spring

用Python3+tkinter開發簡單圖形介面程式

起因在這裡. 由於此專案和漢字相關, 個人也想嘗試Python的圖形介面開發, 於是開始嘗試. 現在還處於原型狀態, 兩百多行程式碼都在一個檔案中. 幾個主要問題: 原始碼節選: 讀入csv源資料: def 讀入源資料檔案(self, 檔名):

使用 Golang 開發簡單的 CLI 程式 selpg

開發實踐 實現過程 文件中講解得非常仔細,我是完全按照文章的思路,參考原 C 程式的結構,然後用 golang 進行實現。golang 中有用於命令列引數解析、檔案讀寫和輸入輸出的包,可以很方便地實現 CLI 程式的一些複雜功能。 selpg 的 golang

10 訊息佇列與一個簡單視窗程式

訊息:當我們點選滑鼠的時候,或者當我們按下鍵盤的時候,作業系統都要把這些動作記錄下來,儲存到一個結構體中,這個結構體就是訊息; 訊息佇列:每個執行緒只有一個訊息佇列;訊息對列與執行緒相關的;訊息佇列就是一堆連結串列; 視窗與執行緒的關係:一個執行緒可以有多個視窗,一個視窗指對應一個執行緒;

Win32 程式開發:建立一個應用程式視窗

1)簡單介紹建立應用程式的步驟 1.設計一個視窗類 2.註冊這個視窗類 3.建立應用程式視窗 4.更新顯示視窗 5.應用程式訊息迴圈 2)下面根據這個步驟進行建立一個應用程式視窗吧 /* 標頭檔案 */ #include <windows.h>

如何編寫簡單的應用window視窗程式

#include<windows.h> LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM); int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInst,LPSTR lpszCmdL

微信小程式教程(搭建簡單的小程式示例

微信小程式是一個挺神奇的存在,它的出現使app不是那麼的友好了,還要下載還要更新,但是小程式就不是了,就內嵌在微信裡,隨時用,不用下載(其實就相當於載入到本地,不過佔用記憶體很小),微信伺服器一更新就好了,這樣多方便,小程式我剛開始接觸還是蠻暈的,和正常的套路不太一樣,不過它的js和vue,

如何讓視窗控制元件透明

在網上關於視窗視覺效果,有2個問題被問得最多:第一個是如何讓視窗邊框有陰影效果?第二個是如何讓視窗控制元件有半透明效果?對於第一個問題,我們的答案是用雙層視窗模擬或是用Layered Window。在XP下可以直接在註冊視窗類時用CS_DROPSHADOW風格,系統就會自動讓你的視窗附加上陰影效果

微信小程式開發簡單入門教程

文章目錄 ###開場白: 雲開發顧名思義 就是後端開發,應該是微信上週才推出的開放能力,現在這讓我想起了以前的leancloud,和更早的bmob了,而leancloud一早就開始支援微信小程式開發了,相比較而言,leancloud的資料應該更多些,但畢竟微信自

00 MFC的本質及一個簡單的MFC程式示例

MFC的本質就是對Win32的封裝。 微軟基礎類庫(英語:Microsoft Foundation Classes,簡稱MFC)是微軟公司提供的一個類庫(class libraries),以C++類的形式封裝了Windows API,並且包含一個應用程式框架,以減少應用程式開發人員的工作量。

Android 開發簡單記事本程式

    簡單介紹一下功能:簡單記事本只能新增文字內容,首頁用ListView顯示所有儲存的事項和儲存的時間,新增頁面新增內容,點選首頁的ListView可以檢視內容,刪除內容。    先看一下執行效果:先建立資料庫:package com.engineer.shizhibin