Используя C++, я создал окно со структурой «WNDCLASS». Затем я снова использовал «CreateWindow» с системным классом «button» и установил родительский дескриптор в дескриптор уже созданного окна. Как удалить эту кнопку из окна? Я попытался вызвать функцию «DestroyWindow», но ничего не происходит. Если я не могу, есть ли способ полностью стереть окно и снова перерисовать все без кнопки, чтобы он не появился?Удалить кнопку из окна
#include <Windows.h>
#include <wchar.h>
HWND clientwindow;
RECT wr;
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case WM_COMMAND:
DestroyWindow(clientwindow);
UpdateWindow(hWnd);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
return 0;
}
int WINAPI wWinMain(HINSTANCE hInst,HINSTANCE,LPWSTR,INT)
{
WNDCLASSEX wc = { sizeof(WNDCLASSEX),CS_CLASSDC,WndProc,0,0,
GetModuleHandle(NULL),NULL,NULL,NULL,NULL,
L"jjclass",NULL };
wc.hCursor = LoadCursor(NULL,IDC_ARROW);
RegisterClassEx(&wc);
wr.left = 650;
wr.right = wr.left + 500;
wr.top = 150;
wr.bottom = wr.top + 500;
AdjustWindowRect(&wr,WS_OVERLAPPEDWINDOW,FALSE);
HWND hWnd = CreateWindowW(L"jjclass",L"my window",
WS_OVERLAPPEDWINDOW,wr.left,wr.top,wr.right- wr.left,wr.bottom-wr.top,
NULL,NULL,wc.hInstance,NULL);
ShowWindow(hWnd,SW_SHOWDEFAULT);
clientwindow = CreateWindow(TEXT("BUTTON"),TEXT("BUTTON"),WS_VISIBLE | WS_CHILD,100,100,100,100,hWnd,(HMENU)1,NULL,NULL);
UpdateWindow(hWnd);
MSG msg;
ZeroMemory(&msg,sizeof(msg));
while(msg.message != WM_QUIT)
{
if(PeekMessage(&msg,NULL,0,0,PM_REMOVE))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
UnregisterClass(L"jjclass",wc.hInstance);
return 0;
}
Да, вы используете DestroyWindow. Никто не может увидеть вашу ошибку, если вы не публикуете фрагмент кода. –
привет, спасибо за ваш ответ. Я разместил его. и я попытался использовать destroywindow, и ничего не происходит. – joelyboy94