【问题标题】:How to add a button to a running Windows GUI program如何将按钮添加到正在运行的 Windows GUI 程序
【发布时间】:2016-12-29 05:12:05
【问题描述】:
现在我想动态修改一个正在运行的WINDOWS程序的GUI(假设这个程序是用win32 API/MFC编写的),例如,在它的特定位置添加一个按钮。
但是我对WINDOWS GUI编程不熟悉。
所以想问问有没有正常的方法可以使用win32 API或者MFC来实现这个功能。
如果没有,我需要任何黑客技巧吗?
【问题讨论】:
标签:
c++
windows
visual-studio
user-interface
mfc
【解决方案1】:
当您在WndProc 回调函数中处理(例如)WM_COMMAND 消息时,您可以使用CreateWindow 函数dynamically 创建任何 Windows 组件。或与此相关的任何其他消息。如果您有一个 ID 为 IDC_BUTTON 的按钮,您可以在单击时创建一个新按钮。
case WM_COMMAND: // process commands
switch (LOWORD(wParam))
{
case IDC_BUTTON: //check for our button ID
HWND hwndButton = CreateWindow(
L"BUTTON", // predefined class name
L"OK", // button text
WS_TABSTOP | WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON, // Styles
10, // x position
10, // y position
75, // width
24, // height
hWnd, // parent handle
(HMENU)IDC_BUTTON2, // button ID
hInst, // module instance
NULL); // lparam, pointer not needed
break;
}