Hallo,
Ich habe eine dringende und wahrscheinlich banale Frage, zu der ich leider keine Lösung bekomme. Ich habe das Problem mal heruntergebrochen, so dass der "Profi" wohl gleich sehen wird, was die Ursache ist.
Ich habe 2 gleichwertige Fenster, wobei sich das eine schließen soll, wenn das andere geöffnet wird. In folgendem Beispiel soll sich das eine einfach schließen wenn Escape gedrückt wurde, während das andere allerdings geöffnet bleiben soll. Das bekomme ich leider einfach nicht hin. Es ist übrigens Absicht, das mit Fenstern lösen zu wollen (also keine Messagebox, oder Dialog Box)
Tut mir leid, falls ich mich hier irgendwo völlig in die Nesseln gesetzt habe aber ich hoffe es kann mir jemand weiterhelfen.
Gruß
Haribald
Ich habe eine dringende und wahrscheinlich banale Frage, zu der ich leider keine Lösung bekomme. Ich habe das Problem mal heruntergebrochen, so dass der "Profi" wohl gleich sehen wird, was die Ursache ist.
Ich habe 2 gleichwertige Fenster, wobei sich das eine schließen soll, wenn das andere geöffnet wird. In folgendem Beispiel soll sich das eine einfach schließen wenn Escape gedrückt wurde, während das andere allerdings geöffnet bleiben soll. Das bekomme ich leider einfach nicht hin. Es ist übrigens Absicht, das mit Fenstern lösen zu wollen (also keine Messagebox, oder Dialog Box)
Code:
#include <windows.h>
LRESULT CALLBACK WindowProcedure(HWND hwnd,UINT msg,WPARAM
wparam,LPARAM lparam);
HWND awindow;
HWND bwindow;
void Register(WNDCLASSEX WindowClass)
{
RECT DesktopSize;
GetClientRect(GetDesktopWindow(),&DesktopSize);
WindowClass.cbSize = sizeof(WNDCLASSEX);
WindowClass.style = CS_HREDRAW | CS_VREDRAW;
WindowClass.lpfnWndProc = WindowProcedure;
WindowClass.cbClsExtra = 0;
WindowClass.cbWndExtra = 0;
WindowClass.hInstance = GetModuleHandle(NULL);
WindowClass.hIcon = NULL;
WindowClass.hCursor = NULL;
WindowClass.hbrBackground = GetSysColorBrush(COLOR_BTNFACE);
WindowClass.lpszMenuName = NULL;
WindowClass.lpszClassName = "ClassName";
WindowClass.hIconSm = LoadIcon(NULL,IDI_APPLICATION);
RegisterClassEx(&WindowClass);
}
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE PrevInstance, LPSTR Ipcmdline, int cCmdShow)
{
MSG Message;
WNDCLASSEX WindowClass;
ZeroMemory(&WindowClass,sizeof(WNDCLASSEX));
Register(WindowClass);
awindow=CreateWindow( "ClassName",
"Window A",
WS_OVERLAPPED|WS_SYSMENU|WS_VISIBLE,
200,300,
200,300,
NULL,
NULL,
GetModuleHandle(NULL),
NULL);
bwindow=CreateWindow( "ClassName","Window B",WS_OVERLAPPED|WS_SYSMENU|WS_VISIBLE,500,300,200,300,NULL,NULL,GetModuleHandle(NULL),NULL);
ZeroMemory(&Message,sizeof(MSG));
while(Message.message!=WM_QUIT)
{if(PeekMessage(&Message,NULL,0U,0U,PM_REMOVE)){TranslateMessage(&Message); DispatchMessage(&Message); }}
return 0;
}
LRESULT CALLBACK WindowProcedure(HWND hwnd,UINT msg,WPARAM wparam,LPARAM lparam)
{
switch(msg)
{case WM_KEYDOWN:{switch(wparam){case VK_ESCAPE: {DestroyWindow(bwindow);break;}}return 0;}case WM_DESTROY:{PostQuitMessage(0);break;}}
return DefWindowProc(hwnd,msg,wparam,lparam);
}
Tut mir leid, falls ich mich hier irgendwo völlig in die Nesseln gesetzt habe aber ich hoffe es kann mir jemand weiterhelfen.
Gruß
Haribald