我在窗口上面创建多个textBox控件,把tText的值存在数组中要求实时刷新,C#写出
时间: 2024-05-24 22:13:02 浏览: 69
#代码如下:
#include <windows.h>
#include <stdio.h>
#define MAX_TEXT_BOX 10
HWND textBoxes[MAX_TEXT_BOX];
char* textBoxValues[MAX_TEXT_BOX];
int currentIndex = 0;
void refreshTextBoxValues()
{
for (int i = 0; i < MAX_TEXT_BOX; i++)
{
char buffer[256];
GetWindowText(textBoxes[i], buffer, 256);
textBoxValues[i] = buffer;
}
}
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case WM_CREATE:
{
for (int i = 0; i < MAX_TEXT_BOX; i++)
{
HWND textBox = CreateWindowEx(
0,
"Edit",
"",
WS_CHILD | WS_VISIBLE | WS_BORDER | ES_AUTOHSCROLL,
10,
10 + i * 30,
150,
25,
hWnd,
(HMENU)i,
GetModuleHandle(NULL),
NULL);
textBoxes[i] = textBox;
}
SetTimer(hWnd, 1, 1000, NULL);
return 0;
}
case WM_TIMER:
{
refreshTextBoxValues();
currentIndex = (currentIndex + 1) % MAX_TEXT_BOX;
SetWindowText(textBoxes[currentIndex], textBoxValues[(currentIndex + MAX_TEXT_BOX - 1) % MAX_TEXT_BOX]);
return 0;
}
case WM_DESTROY:
{
PostQuitMessage(0);
return 0;
}
}
return DefWindowProc(hWnd, message, wParam, lParam);
}
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
WNDCLASS wc = { 0 };
wc.lpfnWndProc = WndProc;
wc.hInstance = hInstance;
wc.hbrBackground = (HBRUSH)(COLOR_BACKGROUND);
wc.lpszClassName = "MainWndClass";
RegisterClass(&wc);
HWND hWnd = CreateWindow(
"MainWndClass",
"Multiple Text Boxes",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
200,
400,
NULL,
NULL,
hInstance,
NULL);
ShowWindow(hWnd, nCmdShow);
MSG msg = { 0 };
while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return (int)msg.wParam;
}
阅读全文