最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

VC中控制臺程序創(chuàng)建窗口的實例方法

 更新時間:2021年12月05日 15:13:28   作者:jobsxiao  
在本篇文章里小編給大家分享的是關(guān)于VC中控制臺程序創(chuàng)建窗口的實例方法及相關(guān)代碼內(nèi)容,有需要的朋友學(xué)習(xí)下吧。

在VC控制臺程序中調(diào)用D3DVideoRender時,需要創(chuàng)建新的窗口控件顯示圖像

#include "windows.h"
#include "TCHAR.h"
 
//聲明自定義消息處理函數(shù)
LRESULT CALLBACK WindowProc(
	HWND hwnd,
	UINT uMsg,
	WPARAM wParam,
	LPARAM lParam
	);
 
int _tmain(int argc, _TCHAR* argv[])
{
	HINSTANCE hInstance;
	hInstance = GetModuleHandle(NULL);	//獲取一個應(yīng)用程序或動態(tài)鏈接庫的模塊句柄
	WNDCLASS Render_WND;
	Render_WND.cbClsExtra = 0;
	Render_WND.cbWndExtra = 0;
	Render_WND.hCursor = LoadCursor(hInstance, IDC_ARROW);	//鼠標(biāo)風(fēng)格
	Render_WND.hIcon = LoadIcon(hInstance, IDI_APPLICATION);	//圖標(biāo)風(fēng)格
	Render_WND.lpszMenuName = NULL;	//菜單名
	Render_WND.style = CS_HREDRAW | CS_VREDRAW;	//窗口的風(fēng)格
	Render_WND.hbrBackground = (HBRUSH)COLOR_WINDOW;	//背景色
	Render_WND.lpfnWndProc = WindowProc;	//【關(guān)鍵】采用自定義消息處理函數(shù),也可以用默認(rèn)的DefWindowProc
	Render_WND.lpszClassName = _T("RenderWindow");	//【關(guān)鍵】該窗口類的名稱
	Render_WND.hInstance = hInstance;	//【關(guān)鍵】表示創(chuàng)建該窗口的程序的運(yùn)行實體代號
 
	RegisterClass(&Render_WND);
 
	HWND hwnd = CreateWindow(
		_T("RenderWindow"),           //【關(guān)鍵】上面注冊的類名lpszClassName,要完全一致  
		L"Zombie",  //窗口標(biāo)題文字  
		WS_OVERLAPPEDWINDOW, //窗口外觀樣式  
		0,             //窗口相對于父級的X坐標(biāo)  
		0,             //窗口相對于父級的Y坐標(biāo)  
		320,                //窗口的寬度  
		240,                //窗口的高度  
		NULL,               //沒有父窗口,為NULL  
		NULL,               //沒有菜單,為NULL  
		hInstance,          //當(dāng)前應(yīng)用程序的實例句柄  
		NULL);              //沒有附加數(shù)據(jù),為NULL  
 
	//去標(biāo)題欄
	SetWindowLong(hwnd, GWL_STYLE, GetWindowLong(hwnd, GWL_STYLE) & ~WS_CAPTION);
 
	//去邊框
	SetWindowLong(hwnd, GWL_EXSTYLE, GetWindowLong(hwnd, GWL_EXSTYLE) & ~(WS_EX_WINDOWEDGE | WS_EX_DLGMODALFRAME));
 
	// 顯示窗口  
	ShowWindow(hwnd, SW_SHOW);
 
	// 更新窗口  
	UpdateWindow(hwnd);
 
	// 消息循環(huán)  
	MSG msg;
	while (GetMessage(&msg, NULL, 0, 0))
	{
		TranslateMessage(&msg);
		DispatchMessage(&msg);
	}
 
	return 0;
}
 
 
// 自定義消息處理函數(shù)的實現(xiàn)
LRESULT CALLBACK WindowProc(
	_In_  HWND hwnd,
	_In_  UINT uMsg,
	_In_  WPARAM wParam,
	_In_  LPARAM lParam
	)
{
	switch (uMsg)
	{
	    case WM_DESTROY:
	    {
			PostQuitMessage(0);
			return 0;
	    }
 
		case WM_KEYDOWN:
		{
			if (wParam == VK_ESCAPE)//按Esc鍵退出
			{
				PostQuitMessage(0);
				return 0;
			}
		}
	}
	return DefWindowProc(hwnd, uMsg, wParam, lParam);
}

實例擴(kuò)展:

#include <iostream>
#include <Windows.h>
using namespace std;


LRESULT CALLBACK __WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) {

	PAINTSTRUCT ps;
	HDC hdc;
	switch (msg) {
	case WM_CLOSE:
		MessageBox(NULL,"WM_CLOSE", "", NULL);
		break;
	default:
		break;
	}

	return DefWindowProc(hWnd, msg, wParam, lParam);
}

int main()
{
	// 窗口屬性初始化
	HINSTANCE hIns = GetModuleHandle(0);
	WNDCLASSEX wc;
	wc.cbSize = sizeof(wc);								// 定義結(jié)構(gòu)大小
	wc.style = CS_HREDRAW | CS_VREDRAW;					// 如果改變了客戶區(qū)域的寬度或高度,則重新繪制整個窗口 
	wc.cbClsExtra = 0;									// 窗口結(jié)構(gòu)的附加字節(jié)數(shù)
	wc.cbWndExtra = 0;									// 窗口實例的附加字節(jié)數(shù)
	wc.hInstance = hIns;								// 本模塊的實例句柄
	wc.hIcon = NULL;									// 圖標(biāo)的句柄
	wc.hIconSm = NULL;									// 和窗口類關(guān)聯(lián)的小圖標(biāo)的句柄
	wc.hbrBackground = (HBRUSH)COLOR_WINDOW;			// 背景畫刷的句柄
	wc.hCursor = NULL;									// 光標(biāo)的句柄
	wc.lpfnWndProc = __WndProc;							// 窗口處理函數(shù)的指針
	wc.lpszMenuName = NULL;								// 指向菜單的指針
	wc.lpszClassName = "LYSM_class";					// 指向類名稱的指針

	// 為窗口注冊一個窗口類
	if (!RegisterClassEx(&wc)) {
		cout << "RegisterClassEx error : " << GetLastError() << endl;
	}

	// 創(chuàng)建窗口
	HWND hWnd = CreateWindowEx(
		WS_EX_TOPMOST,				// 窗口擴(kuò)展樣式:頂級窗口
		"LYSM_class",				// 窗口類名
		"LYSM_title",				// 窗口標(biāo)題
		WS_OVERLAPPEDWINDOW,		// 窗口樣式:重疊窗口
		0,							// 窗口初始x坐標(biāo)
		0,							// 窗口初始y坐標(biāo)
		800,						// 窗口寬度
		600,						// 窗口高度
		0,							// 父窗口句柄
		0,							// 菜單句柄 
		hIns,						// 與窗口關(guān)聯(lián)的模塊實例的句柄
		0							// 用來傳遞給窗口WM_CREATE消息
	);
	if (hWnd == 0) {
		cout << "CreateWindowEx error : " << GetLastError() << endl;
	}
	UpdateWindow(hWnd);
	ShowWindow(hWnd, SW_SHOW);

	// 消息循環(huán)(沒有會導(dǎo)致窗口卡死)
	MSG msg = { 0 };
	while (msg.message != WM_QUIT) {
		// 從消息隊列中刪除一條消息
		if (PeekMessage(&msg, 0, 0, 0, PM_REMOVE)) {			
			DispatchMessage(&msg);
		}
	}

	
	cout << "finished." << endl;
	getchar();
end:

	getchar();
	return 0;
}


到此這篇關(guān)于VC中控制臺程序創(chuàng)建窗口的實例方法的文章就介紹到這了,更多相關(guān)VC中控制臺程序如何創(chuàng)建窗口內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

准格尔旗| 太康县| 冀州市| 顺义区| 宁津县| 林芝县| 霸州市| 出国| 常熟市| 繁昌县| 兴化市| 阜阳市| 江陵县| 监利县| 安溪县| 东光县| 丽江市| 马龙县| 桐梓县| 浦江县| 公主岭市| 临漳县| 双牌县| 开原市| 嘉义县| 屏东市| 郯城县| 施秉县| 石嘴山市| 鹤庆县| 东城区| 成武县| 永兴县| 洛宁县| 旺苍县| 长宁县| 沁水县| 无锡市| 寿宁县| 大港区| 浑源县|