我正在使用Windows GUI应用程序。在我的窗口上有20个button。 对每个button点击,我想打开一个新窗口显示一些信息。 它可以是任何可以显示一些信息的东西,但是由于我对这一切都是陌生的,我不想尝试任何复杂的东西,所以我决定按照每个button单击创build一个popup窗口的想法。
现在我面临的问题是,因为有20个不同的窗口,我是否需要创build20个不同的窗口callback函数? 虽然在popup窗口中只有一个控件,即一个Close符号,但即使这样,我也需要有一个CALLBACK函数。
我一直在尝试,但现在这个想法看起来毫无意义。 有没有其他的select,我可以实现所需的function?
等待帮助。
如果所有窗口的行为都是相同的,那么可以创建一个由所有弹出窗口共享的窗口过程 (称为CALLBACK
函数)。
窗口过程不必是单个窗口唯一的,但是如果多个窗口共享相同的窗口过程,它们将对所收到的所有消息做出相同的反应。
例如:
// Message procedure for all pop-up windows. LRESULT CALLBACK MyPopupWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) { switch (msg) { // handle any messages you want here in order to // customize the behavior of your pop-up window } return DefWindowProc(hwnd, msg, wParam, lParam); }
当您为弹出窗口注册窗口类(使用RegisterClassEx
函数)时,指定一个指向MyPopupWndProc
函数的指针,然后在调用CreateWindowEx
创建/显示弹出窗口时传递已注册窗口类的名称窗口,当你的主窗口上的按钮被点击。
当然,如果你只是为了测试目的而想要一些简单的东西,记住你总是可以调用MessageBox
函数! 没有窗口程序或类注册需要。