AddKeyboardShortcut bei fremd erzeugtem Fenster ???

Anfängerfragen zum Programmieren mit PureBasic.
andi256
Beiträge: 100
Registriert: 06.11.2004 11:23
Computerausstattung: PB 5.30 (x64) Win7
Wohnort: Österreich

AddKeyboardShortcut bei fremd erzeugtem Fenster ???

Beitrag von andi256 »

Hallo ...

hab ne frage ... steh auf der Leitung ????

ich hab ein programm(Fenster) das zur laufzeit per dll ein (child) fenster generiert ... nun möcht ich das in beiden Fenster da gewisse Tasten überwacht werden ...

beim Hauptfenster ist das einfach

Code: Alles auswählen

If OpenWindow(#Hauptfenster, 130, 130, 600, 480,  ......
AddKeyboardShortcut(#Hauptfenster, #PB_Shortcut_Return, 1000)
doch beim von der dll erzeugten Fenster kenn ich die Konstante ?????????? nicht ... (kenn zwar das Handle ..... aber irgenwie bring ich das nicht hin ....)

Code: Alles auswählen

child_hwnd = Findwindow_(......)#
AddKeyboardShortcut(????????????????, #PB_Shortcut_Return, 1000)
hat da wer ne idee wie man das umgehen kann ... bzw anderswärtig schön löst ...

zur verdeutlichung noch ein Beispiel .... wie kann ich in dem per Api erzeugten Window die Tasten per AddKeyboardShortcut abfragen

Code: Alles auswählen

Procedure WindowCallback(Window, Message, wParam, lParam) 
  Select Message 
    Case #WM_CLOSE 
      If MessageBox_(Window, "Wirklich beenden?", "EXIT", #MB_YESNO) = #IDYES 
        DestroyWindow_(Window) 
      Else 
        Result  = 0 
      EndIf 
    Case #WM_DESTROY 
      PostQuitMessage_(0) 
      Result  = 0 
    Default 
      Result  = DefWindowProc_(Window, Message, wParam, lParam) 
  EndSelect 
  ProcedureReturn Result 
EndProcedure 

#Style  = #WS_VISIBLE | #WS_BORDER | #WS_SYSMENU 
#StyleEx  = #WS_EX_TOOLWINDOW ;| #WS_EX_OVERLAPPEDWINDOW 

WindowClass.s  = "MeinFenster" 
wc.WNDCLASSEX 
wc\cbSize  = SizeOf(WNDCLASSEX) 
wc\lpfnWndProc  = @WindowCallback() 
wc\hCursor  = LoadCursor_(0, #IDC_CROSS); #IDC_ARROW   = Arrow 
wc\hbrBackground  = #COLOR_WINDOW + 1;CreateSolidBrush_(RGB($8F,$8F,$8F)) 
wc\lpszClassName  = @WindowClass 
RegisterClassEx_(@wc) 

hWndMain  = CreateWindowEx_(#StyleEx, WindowClass, "Test-Window", #Style, 10, 10, 200, 200, 0, 0, 0, 0) 
ShowWindow_(hWndMain,  #SW_SHOWDEFAULT) 
UpdateWindow_(hWndMain)

;AddKeyboardShortcut(???????????, #PB_Shortcut_Return, 1000)

While GetMessage_(msg.MSG, #NULL, 0, 0 ) 
  TranslateMessage_(msg) 
  DispatchMessage_(msg) 
Wend
Danke andi256