Код | #include <windows.h>
HWND GetConsoleHwnd(); LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
long swl;
int main() { swl = SetWindowLong(GetConsoleHwnd(), GWL_WNDPROC, (long)WndProc); MSG msg; HACCEL hAccelTable; while (GetMessage(&msg, NULL, 0, 0)) { if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg)) { TranslateMessage(&msg); DispatchMessage(&msg); } } return 0; }
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { CallWindowProc( swl, GetConsoleHwnd(), message, wParam, lParam ); switch (message) { case WM_LBUTTONDOWN: SetConsoleTitle("CLICK"); } return 0; }
HWND GetConsoleHwnd() { #define MY_BUFSIZE 1024 HWND hwndFound; char pszNewWindowTitle[MY_BUFSIZE]; char pszOldWindowTitle[MY_BUFSIZE]; GetConsoleTitle(pszOldWindowTitle, MY_BUFSIZE); wsprintf(pszNewWindowTitle,"%d/%d", GetTickCount(), GetCurrentProcessId()); SetConsoleTitle(pszNewWindowTitle); Sleep(40); hwndFound=FindWindow(NULL, pszNewWindowTitle); SetConsoleTitle(pszOldWindowTitle); return(hwndFound); }
|
так чтоли?
error C2664: 'CallWindowProcA' : cannot convert parameter 1 from 'long' to 'long (__stdcall *)(struct HWND__ *,unsigned int,unsigned int,long)' Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast |