Ultimamente, tenho me dedicado a programação com API gráfica e, tentei criar uma janela por conta própria.... porém, ela é transparente.
não consigo encontrar o erro... Segue o código dela:
// ------------------------------------------------------------------
// main.cpp
//-------------------------------------------------------------------
//Bibliotecas:
#include <Windows.h>
// Definições:
#define NAMEWND L"Minha primeira janela" // Nome da Janela.
#define NAMECLS L"Electronic Matter" // Nome da classe.
#define PX 1 // Posição da janela na horizontal.
#define PY 1 // Posição da janela na vertical.
#define LARG 750 // Largura da janela.
#define ALTU 500 // Altura da janela
// Variaveis das estrutuas:
WNDCLASSEX wcl; // Classe da janela.
HWND hWnd = NULL; // Estrutura da janela.
MSG msg; // Estrutura das mensaens.
// Protótipo da Função WindowProc:
LRESULT CALLBACK WindowProc(HWND, UINT, WPARAM, LPARAM);
// WinMain() -> Função Principal Win32.
int WINAPI WinMain(HINSTANCE hInstace, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
// Iniciação da classe.
//-------------------------------------------------------------------
wcl.cbSize = sizeof(WNDCLASSEX);
wcl.style = 0;
wcl.lpfnWndProc = (WNDPROC)WindowProc;
wcl.cbClsExtra = 0;
wcl.cbWndExtra = 0;
wcl.hInstance = hInstace;
wcl.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wcl.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
wcl.hCursor = LoadCursor(NULL, IDC_ARROW);
wcl.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
wcl.lpszMenuName = NULL;
wcl.lpszClassName = NAMECLS;
//--------------------------------------------------------------------
// Registrando a Classe e criando a janela.
//--------------------------------------------------------------------
RegisterClassEx(&wcl); // Registra a classe.
hWnd = CreateWindowEx( // Cria a janela.
WS_VSCROLL,
NAMECLS,
NAMEWND,
WS_OVERLAPPEDWINDOW,
PX,
PY,
LARG,
ALTU,
HWND_DESKTOP,
NULL,
hInstace,
NULL);
//--------------------------------------------------------------------
// Mostra a janela / atualiza a janela.
//--------------------------------------------------------------------
ShowWindow(hWnd, nCmdShow);
UpdateWindow(hWnd);
//--------------------------------------------------------------------
// Loop de mensagem.
//--------------------------------------------------------------------
while (GetMessage(&msg, hWnd, 0, 0) > 0)
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
} // Fim do WinApi().
//--------------------------------------------------------------------
//WinowProc() -> Processador de mensagens.
//--------------------------------------------------------------------
LRESULT CALLBACK WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lparam)
{
HDC hDC = NULL;
PAINTSTRUCT msPaint;
switch (uMsg)
{
case WM_CREATE:
{
return 0;
} break;
case WM_PAINT:
{
hDC = BeginPaint(hWnd, &msPaint);
EndPaint(hWnd, &msPaint);
return 0;
} break;
case WM_CLOSE:
{
DestroyWindow(hWnd);
return 0;
} break;
case WM_DESTROY:
{
PostQuitMessage(WM_QUIT);
return 0;
} break;
default:
{
return (DefWindowProc(hWnd, uMsg, wParam, lparam));
} break;
}
}
PS: eu uso o Visual Studio C++ 2015 e tenho o Windows 10, caso isso interfira.