[C++] [winapi] komunikaty okna w osobnym procesie

0

Hej mam pytanko:
Czy obsluge komunikatu okna mozna wrzucić do thread'a?

mam na mysli:

HWND hwnd;
DWORD WINAPI ThreadFunc( LPVOID)
{
	MSG msg;

	while (PeekMessage (&msg,whnd,0, 0, PM_NOREMOVE))
	{
		MessageBox(0,0,0,0);// NAWET NIE JEST WYWOLYWANE
		GetMessage(&msg,hwnd,0, 0);
		TranslateMessage(&msg);
		DispatchMessage (&msg);
	}
return 0;
}

int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR    lpCmdLine, int       nCmdShow)
{
	hwnd = Init(NULL,  0,0,100,100);//tworzy okno

	CreateThread(	NULL,NULL,ThreadFunc,(LPVOID)NULL,NULL,	NULL   );

Sleep(1000000000);
return 0;
}

bardzo prosze o pomoc :-(

0

Obsługa komunikatów danego okna musi być w tym samym wątku, który utworzył to okno.
Każdy wątek może mieć swoją pętlę komunikatów.

About Messages and Message Queues

MessageBox(0,0,0,0);// NAWET NIE JEST WYWOLYWANE
Jest, tylko złe parametry przekazałeś.

0

oj adf88 to naprawde nie dogra informacja dla mojgo projektu!

Czy znasz moze sposob jak to obejsc? Jakiekolwiek sugestie [???] prosze [glowa]

0

Yyym, ale dlaczego komunikaty okna ma robić osobny wątek?? Co ty robisz w wątku głównym, że chcesz je wywalić. Na moje oko, to po prostu spójrz na swój projekt z drugiej strony.

W głównym wątku pętla komunikatów, w osobnym wątku to, co teraz wsadziłeś do głównego. Komunikacja za pomocą... a co ja tam wiem, na razie to można napisać, że za pomocą czegokolwiek - np eventów i WaitForSingleObject

0

pisze osobną biblotekę do okien..no i nie bardzo mi zależało na tym żeby odbiorca zostal zmuszony do wstawienia :

while (1)
{
	while(GetMessage (&msg, NULL, 0, 0))
	{
		// Translate virtual-key messages into character messages
		TranslateMessage(&msg);
		// Send message to WindowProcedure
		DispatchMessage(&msg);
	}
}

ale tak to zostawie:P

0

zwykle takie coś wrzuca się do jakiejś metody static Application::Run(), albo robi się wątek na okno

1 użytkowników online, w tym zalogowanych: 0, gości: 1