Когда я создаю новое приложение Win32, я замечаю функцию:Как зарегистрировать WndProc в консольном приложении
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
будет получать сообщение, когда где-то вызов функции PostMessage или SendMessage, и я замечаю, что функция WndProc может получить сообщение, потому что есть функция, зарегистрировать его:
ATOM MyRegisterClass(HINSTANCE hInstance)
{
WNDCLASSEX wcex;
wcex.cbSize = sizeof(WNDCLASSEX);
wcex.style = CS_HREDRAW | CS_VREDRAW;
wcex.lpfnWndProc = WndProc;
wcex.cbClsExtra = 0;
wcex.cbWndExtra = 0;
wcex.hInstance = hInstance;
wcex.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_SCREENCAPTURE));
wcex.hCursor = LoadCursor(NULL, IDC_ARROW);
wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
wcex.lpszMenuName = MAKEINTRESOURCE(IDC_SCREENCAPTURE);
wcex.lpszClassName = szWindowClass;
wcex.hIconSm = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_SMALL));
return RegisterClassEx(&wcex);
}
Примечание: wcex.lpfnWndProc = WndProc;
Я хочу UNDE ру и понять механизм PostMessage() и как его получить, таким образом, я создал приложение консоли C++, чтобы увидеть, если я могу зарегистрировать функцию WndProc, вот мой пытается код:
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
int a = 1;//Break point here to see if it's call
return 0;
}
ATOM MyRegisterClass(HINSTANCE hInstance)
{
WNDCLASSEX wcex;
wcex.lpfnWndProc = WndProc;
wcex.hInstance = hInstance;
return RegisterClassEx(&wcex);
}
void main()
{
MyRegisterClass(GetModuleHandle(NULL));//(HINSTANCE)GetConsoleWindow()
PostMessage(GetConsoleWindow(), 132, 0, 0);
SYSTEMTIME st;
while (true)
{
GetSystemTime(&st);
printf("I'm wanting and waiting and waiting :(, The time is %I64u \n", st.wMilliseconds);
}
}
Похоже, вы забыли задать вопрос. –
О, вопрос в том, как зарегистрировать WndProc в консольном приложении, точно так же, как и название. – 123iamking
Пожалуйста, отметьте эти вопросы с помощью окон или какой-либо другой конкретной платформы. :-) Я действительно хочу не видеть их. * bleah! * :-) – Omnifarious