• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Uzupełnianie okna c++

Object Storage Arubacloud
0 głosów
488 wizyt
pytanie zadane 2 kwietnia 2019 w C i C++ przez Sic Dyskutant (8,510 p.)

Witam

Chciałbym zadać dosyć "głupie" pytanie dotyczące uzupełniania okien w WinApi. Oto mój dotychczasowy kod:

#include <windows.h>
#include <iostream>

LPCSTR szClassName = "Moje okno Windows";
LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam); // definicja zostanie dodana poźniej
MSG msg;

int WINAPI WinMain(HINSTANCE hInst, HINSTANCE vPrevINSTANCE, LPSTR lpszCmdLine, int nCmdShow)
{
	WNDCLASSEX winClass; // zmienna rekordowa
	HWND hWndMain;
	
// uzupełnienie danych okna na bazie zmiennych struktury !
	winClass.cbSize = sizeof(WNDCLASSEX);
	winClass.cbClsExtra = 0;
	winClass.cbWndExtra = 0;
	winClass.hInstance = hInst;
	winClass.lpszClassName = szClassName;
	winClass.lpszMenuName = NULL;
	winClass.hCursor = LoadCursor(NULL, IDC_WAIT); // kursorem będzie klepsydra (niech czeka, zastosowanie malipulacji)
	winClass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
	winClass.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
	winClass.hbrBackground = (HBRUSH)(COLOR_3DSHADOW + 1);
	winClass.style = CS_HREDRAW | CS_VREDRAW; // zmiana rozmiarów okna w pionie i poziomie
	winClass.lpfnWndProc = WndProc; // (wskaźnik na procedurę okna), odpowiedzialny za obsługę komunikatówdef
	
	if (!RegisterClassEx(&winClass))
	{
		MessageBox(NULL, "Błąd rejestracji okna", "Komunikat", MB_OK | MB_ICONEXCLAMATION);
	}

	hWndMain = CreateWindowEx(
		WS_EX_CLIENTEDGE,
		szClassName,
		"Okno glowne",
		WS_OVERLAPPEDWINDOW,
		CW_USEDEFAULT,
		CW_USEDEFAULT,
		300, 200,
		NULL,
		NULL,
		hInst,
		NULL);

	ShowWindow(hWndMain, nCmdShow);
	UpdateWindow(hWndMain);

	//Rezultatem funkcji GetMessage jest wartość 0 jeżeli z kolejki pobrany został komunikat WM_QUIT.Rezultat o wartości - 1 oznacza błąd.
	while (GetMessage(&msg, NULL, 0, 0) > 0) 
	{
		TranslateMessage(&msg);
		DispatchMessage(&msg);
	}

	//InvalidateRect(hWndMain, NULL, FALSE);
	//SetWindowText( hWndMain, szClassName);

	return msg.wParam;

	system("pause");
	return 0;
}

LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
	switch (msg)
	{
	case WM_CLOSE:
		DestroyWindow(hWnd);
		break;
	case WM_DESTROY:
		PostQuitMessage(0);
		break;
	default: return DefWindowProc(hWnd, msg, wParam, lParam);
	}

	return 0;
}

Powoduje wywołanie pustego okna z nowoczesną ramką windowsa. Jednak chciałbym uzupełnić jego zawartość o tekst, bądź obraz (np. jpeg). Jednak nie wiem gdzie miałbym umieścić te dane jako dodatkowa funkcja czy w inny sposób? Robię to pierwszy raz, a informacje dotyczą zazwyczaj tworzenia okna a nie jego uzupełnienia o dodatkowe elementy.

Moje pytania to:

1. Jakich funkcji powinienem użyć chcąc dodać informacje do okna w VS ?

2. Czy wystarczy wrzucić dodatkową funkcję do "int WINAPI WinMain(...)" ?

1 odpowiedź

+1 głos
odpowiedź 2 kwietnia 2019 przez j23 Mędrzec (194,920 p.)
wybrane 3 kwietnia 2019 przez Sic
 
Najlepsza

Komunikat WM_PAINT.

Podobne pytania

0 głosów
1 odpowiedź 228 wizyt
pytanie zadane 10 stycznia 2019 w C i C++ przez Sic Dyskutant (8,510 p.)
0 głosów
0 odpowiedzi 329 wizyt
pytanie zadane 11 stycznia 2022 w C i C++ przez MKolaj15 Bywalec (2,270 p.)
0 głosów
1 odpowiedź 265 wizyt
pytanie zadane 11 czerwca 2016 w C i C++ przez timrh Mądrala (6,030 p.)

92,536 zapytań

141,376 odpowiedzi

319,451 komentarzy

61,920 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...