[win32]多个窗口之间怎样定义各自的变量互不影响? - C++ Builder / Windows SDK/API
我在做一款能够显示和操作图像的软件
软件里面可以创建多个窗口,每个窗口可以以不同的方式查看同一幅图片,
于是我用
HWND hwndimg[20] // 假设最大不超过20个窗口
这种方式创建了这些窗口,
然后给他们分别加上了同一个WndProc
于是问题来了:
我在WndProc函数中,定义了一些变量来确定图像显示的位置,比例等属性
比如:
static int xLoc, yLoc; // 等等诸如此类的变量
由于是static类型的,所以一个窗口的操作就同时影响了其他窗口
如果我不定义成static类型的,每次又都会被重置。。。
请问我该怎么办?
下面是我程序的大致结构
int WinMain(...){HWND hwndmain; // 主窗口HWND hwndimg[20]; // 暂定最多20个窗口MSG msg;WNDCLASS wndclass/* ...窗口初始化代码... */wndclass.lpfnWndProc = ImgWndProc;hwnd[0] = CreateWindow(......) // 一开始先创建一个窗口ShowWindow(hwnd, nCmdShow);UpdateWindow(hwnd);return msg.wParam;}// 下面是回调函数LRESULT CALLBACK ImgWndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam){ static int xLoc, yLoc; // 一些变量初始化 // 还有很多类似变量 switch(message) { case WM_CREATE: // ...一些代码 case WM_PAINT: // ...一些代码 case WM_DESTROY: DestroyWindow(hwnd); return 0; } return DefWindowProc(hwnd, message, wParam, lParam);}