VC玻璃特效窗口

#include <windows.h>
#include <string.h>
#include <stdlib.h>

#define KeyDown(vk_code) 	((GetAsyncKeyState(vk_code) & 0x8000) ? 1 : 0)
#define Msg(info) 			MessageBox(NULL,info,"message",MB_OK)
#define ErrorMsg(info) 		MessageBox(NULL,info,"error",MB_ICONSTOP)
#define TEXTOUT(dc,x,y,str)	TextOut(dc,x,y,str,strlen(str))

#include <dwmapi.h> 
#pragma comment (lib , "dwmapi.lib") 

const char * WND_CLASS = "unknown_window_class";
const char * WND_TITLE = "untitled";
 
LRESULT CALLBACK MsgProc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam)
{
	switch(msg)
	{
		case WM_CREATE:
		{ 
			BOOL bDwm;
    		DwmIsCompositionEnabled (&bDwm );
    		if(bDwm )
    		{  
       			 MARGINS mrg = {0, 200, 0, 40};  
        		DwmExtendFrameIntoClientArea (hwnd , &mrg );
        		//SetBackgroundColor(RGB(0, 0, 0));
    		} 
    		break;
		}
		
		case WM_DESTROY:
			PostQuitMessage(0);
			break;
			
		default:
			break;
	}
	
	return DefWindowProc(hwnd, msg, wparam, lparam);
}

int WINAPI WinMain(HINSTANCE hinst, HINSTANCE hprevinst, LPSTR cmdline, INT show)
{
	WNDCLASS wc;
	wc.style = CS_CLASSDC;
	wc.lpfnWndProc = MsgProc;
	wc.cbClsExtra = 0;
	wc.cbWndExtra = 0;
	wc.hInstance = hinst;
	wc.hIcon = LoadIcon(0, IDC_APPSTARTING);
	wc.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH);
	wc.hCursor = LoadCursor(0, IDC_ARROW);
	wc.lpszClassName = WND_CLASS;
	wc.lpszMenuName = NULL;
		
	if( ! RegisterClass(&wc) )
		return 0;
	
	
	HWND hwnd = CreateWindow(WND_CLASS, WND_TITLE, WS_OVERLAPPEDWINDOW,
		CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
		NULL, NULL, wc.hInstance, NULL);
	
	if(!hwnd)
		return 0;
			
	ShowWindow(hwnd, SW_SHOWNORMAL);
	UpdateWindow(hwnd);

	MSG msg={0};
	
	while(msg.message != WM_QUIT)
	{
		if(PeekMessage(&msg, 0, 0, 0, PM_REMOVE))
		{
			TranslateMessage(&msg);
			DispatchMessage(&msg);
		}
		void AppLoop();
		
	}
	
	UnregisterClass(WND_CLASS, wc.hInstance);
	
	return 0;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章