【发布时间】:2021-11-20 01:34:48
【问题描述】:
在 Win32 API 的帮助下,我正在制作一个带有 C++ 接口的基本计算器。我已经完成了图形部分(我将在下面留下截图),现在我需要完成代码。
我已经可以使用按钮将文本添加到编辑控件。我希望在选择按钮 1 和 2 时,输入数字 12。
问题是这样做时,一个数字会覆盖另一个数字。如果我选择按钮 1,然后选择 2,则写入数字 1,然后将其擦除并写入 2。
你知道我该如何解决吗?我也想知道如何将 Edit 控件中的数据保存在变量中,然后对其进行操作。
对不起,如果这些是一些基本的东西,我刚刚开始使用 Win32 API。我把我所拥有的代码留给你,非常感谢:)
#include <windows.h>
#include "resource.h"
HWND text;
BOOL CALLBACK mycallback(HWND window, UINT message, WPARAM wParam, LPARAM lParam) {
switch (message) {
case WM_CLOSE: {
DestroyWindow(window);
break;
}
case WM_DESTROY: {
PostQuitMessage(0);
break;
}
case WM_INITDIALOG:
{
text = GetDlgItem(window, IDC_EDIT1);
break;
}
case WM_COMMAND:
switch (LOWORD(wParam))
{
case IDC_BUTTON1:
{
SendMessage(text, WM_SETTEXT, 0, (LPARAM)"1");
break;
}
case IDC_BUTTON2:
{
SendMessage(text, WM_SETTEXT, 0, (LPARAM)"2");
break;
}
case IDC_BUTTON3:
{
SendMessage(text, WM_SETTEXT, 0, (LPARAM)"3");
break;
}
case IDC_BUTTON4:
{
SendMessage(text, WM_SETTEXT, 0, (LPARAM)"4");
break;
}
case IDC_BUTTON5:
{
SendMessage(text, WM_SETTEXT, 0, (LPARAM)"5");
break;
}
case IDC_BUTTON6:
{
SendMessage(text, WM_SETTEXT, 0, (LPARAM)"6");
break;
}
case IDC_BUTTON7:
{
SendMessage(text, WM_SETTEXT, 0, (LPARAM)"7");
break;
}
case IDC_BUTTON8:
{
SendMessage(text, WM_SETTEXT, 0, (LPARAM)"8");
break;
}
case IDC_BUTTON9:
{
SendMessage(text, WM_SETTEXT, 0, (LPARAM)"9");
break;
}
case IDC_BUTTON10:
{
SendMessage(text, WM_SETTEXT, 0,(LPARAM)"0");
break;
}
}
}
return false;
}
int WINAPI WinMain(HINSTANCE a, HINSTANCE b, LPSTR c, int d) {
DialogBox(a, MAKEINTRESOURCE(IDD_DIALOG1), NULL, mycallback);
return 0;
}
【问题讨论】:
标签: c++ visual-studio winapi