欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

在VC控制臺(tái)程序中調(diào)用D3DVideoRender時(shí),需要?jiǎng)?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);	//獲取一個(gè)應(yīng)用程序或動(dòng)態(tài)鏈接庫(kù)的模塊句柄
	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)鍵】該窗口類(lèi)的名稱
	Render_WND.hInstance = hInstance;	//【關(guān)鍵】表示創(chuàng)建該窗口的程序的運(yùn)行實(shí)體代號(hào)
 
	RegisterClass(&Render_WND);
 
	HWND hwnd = CreateWindow(
		_T("RenderWindow"),           //【關(guān)鍵】上面注冊(cè)的類(lèi)名lpszClassName,要完全一致  
		L"Zombie",  //窗口標(biāo)題文字  
		WS_OVERLAPPEDWINDOW, //窗口外觀樣式  
		0,             //窗口相對(duì)于父級(jí)的X坐標(biāo)  
		0,             //窗口相對(duì)于父級(jí)的Y坐標(biāo)  
		320,                //窗口的寬度  
		240,                //窗口的高度  
		NULL,               //沒(méi)有父窗口,為NULL  
		NULL,               //沒(méi)有菜單,為NULL  
		hInstance,          //當(dāng)前應(yīng)用程序的實(shí)例句柄  
		NULL);              //沒(méi)有附加數(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ù)的實(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);
}

實(shí)例擴(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ū)域的寬度或高度,則重新繪制整個(gè)窗口 
	wc.cbClsExtra = 0;									// 窗口結(jié)構(gòu)的附加字節(jié)數(shù)
	wc.cbWndExtra = 0;									// 窗口實(shí)例的附加字節(jié)數(shù)
	wc.hInstance = hIns;								// 本模塊的實(shí)例句柄
	wc.hIcon = NULL;									// 圖標(biāo)的句柄
	wc.hIconSm = NULL;									// 和窗口類(lèi)關(guān)聯(lián)的小圖標(biāo)的句柄
	wc.hbrBackground = (HBRUSH)COLOR_WINDOW;			// 背景畫(huà)刷的句柄
	wc.hCursor = NULL;									// 光標(biāo)的句柄
	wc.lpfnWndProc = __WndProc;							// 窗口處理函數(shù)的指針
	wc.lpszMenuName = NULL;								// 指向菜單的指針
	wc.lpszClassName = "LYSM_class";					// 指向類(lèi)名稱的指針

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

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

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

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

	getchar();
	return 0;
}


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

相關(guān)文章

  • c語(yǔ)言如何實(shí)現(xiàn)兩數(shù)之和

    c語(yǔ)言如何實(shí)現(xiàn)兩數(shù)之和

    這篇文章主要介紹了c語(yǔ)言如何實(shí)現(xiàn)兩數(shù)之和,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • Qt自定義控件實(shí)現(xiàn)多彩色儀表盤(pán)

    Qt自定義控件實(shí)現(xiàn)多彩色儀表盤(pán)

    這篇文章主要為大家詳細(xì)介紹了Qt自定義控件實(shí)現(xiàn)多彩色儀表盤(pán),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-12-12
  • C/C++使用fmt庫(kù)實(shí)現(xiàn)格式化字符串

    C/C++使用fmt庫(kù)實(shí)現(xiàn)格式化字符串

    fmt庫(kù)是一個(gè)高效、易用的C++格式化庫(kù),可以幫助我們方便地進(jìn)行字符串格式化、輸出、日志記錄等操作,下面我們就來(lái)學(xué)習(xí)一下fmt格式化字符串的具體操作吧
    2023-12-12
  • 簡(jiǎn)單談?wù)凜++ 中指針與引用

    簡(jiǎn)單談?wù)凜++ 中指針與引用

    下面用通俗易懂的話來(lái)概述一下,指針-對(duì)于一個(gè)類(lèi)型T,T*就是指向T的指針類(lèi)型,也即一個(gè)T*類(lèi)型的變量能夠保存一個(gè)T對(duì)象的地址,而類(lèi)型T是可以加一些限定詞的,引用-引用是一個(gè)對(duì)象的別名,主要用于函數(shù)參數(shù)和返回值類(lèi)型,符號(hào)X&表示X類(lèi)型的引用。
    2015-09-09
  • OpenCV實(shí)現(xiàn)人臉檢測(cè)

    OpenCV實(shí)現(xiàn)人臉檢測(cè)

    這篇文章主要為大家詳細(xì)介紹了OpenCV實(shí)現(xiàn)人臉檢測(cè)的相關(guān)資料,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • C++實(shí)現(xiàn)猜數(shù)字游戲

    C++實(shí)現(xiàn)猜數(shù)字游戲

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)猜數(shù)字游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-07-07
  • C語(yǔ)言完全平方整數(shù)的判斷

    C語(yǔ)言完全平方整數(shù)的判斷

    大家好,本篇文章主要講的是C語(yǔ)言完全平方整數(shù)的判斷,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • C++ 類(lèi)的構(gòu)造函數(shù)詳解及實(shí)例

    C++ 類(lèi)的構(gòu)造函數(shù)詳解及實(shí)例

    這篇文章主要介紹了C++ 類(lèi)的構(gòu)造函數(shù)詳解及實(shí)例的相關(guān)資料,學(xué)習(xí)C++ 的朋友對(duì)構(gòu)造函數(shù)肯定不陌生,非常重要的基礎(chǔ)知識(shí),這里就詳細(xì)介紹下,需要的朋友可以參考下
    2016-12-12
  • 《C++ primer plus》讀書(shū)筆記(二)

    《C++ primer plus》讀書(shū)筆記(二)

    本讀書(shū)筆記是讀了《C++ primer plus(第六版)》第五至八章的學(xué)習(xí)筆記。是C++讀書(shū)筆記系列的第二篇。復(fù)習(xí)C++基礎(chǔ)知識(shí)的可以瞄瞄。
    2014-10-10
  • 使用c++實(shí)現(xiàn)OpenCV繪制圓端矩形

    使用c++實(shí)現(xiàn)OpenCV繪制圓端矩形

    這篇文章主要介紹了使用c++實(shí)現(xiàn)OpenCV繪制圓端矩形,其中著重的講解了OpenCV使用過(guò)程中需要注意的一些小細(xì)節(jié),避免浪費(fèi)大家在開(kāi)發(fā)過(guò)程中浪費(fèi)多余的時(shí)間
    2021-08-08

最新評(píng)論