GetParent()



  • Hallo Jungs,

    sorry, wenn dieses Thema schon behandelt wurde (was wahrscheinlich ist) aber die Suchfunktion ist ja z.Z. bekanntlich deaktiviert.

    Zu meinem Problem: Ich versuche eine Hotkey zu registrieren, der aber von einem anderen Dialog abgefangen werden soll. Das sieht dann so aus, dass der Benutzer in den Optionen (CProberySheet) den Hotkey auswählen sollen und wenn er auf OK geklickt hat, soll dann der Hauptdialog den Hotkey abfangen. Ich hab es mit folgender Zeile probiert, welche nicht funktioniert:

    if (!RegisterHotKey(GetParent()->GetSafeHwnd(),100,modifier,vkeystr[0])) {
    

    Das lässt sich zwar kompilieren, der Hotkey wird aber nicht registriert. 😞



  • was für einen Wert hat modifier ?



  • Der Code funktioniert ja , wenn ich den im Hauptdialog ausführe und als erstes Argument this->m_hWnd übergebe. Aber hier der Code. Die Variablen m_iPrefix und m_iSuffix sind jeweils die Membervariabllen von den Comboboxen, aus denen der User auswählt.

    UINT modifier;
    	CString modifierstring;
    
    	if(m_iPrefix == 3)
    		modifier=MOD_ALT;
    	else if (m_iPrefix == 2)
    		modifier=MOD_CONTROL;
    	else if(m_iPrefix ==1)
    		modifier=MOD_SHIFT;
    	else if(m_iPrefix == 0)
    		modifier=MOD_WIN;
    
    	CString vkeystr;
    	m_cSuffix.GetLBText(m_cSuffix.GetCurSel(),vkeystr);
    


  • Hi Leute.
    Hab jetzt den Fehler gefunden. Wenn jemand mal das gleiche Problem hat: Ich hatte einen kleinen Denkfehler, denn wenn man GetParent()->GetSafeHwnd() übergibt, übergibt man ja ein Handle auf die von CPropertySheet abgeleitete Klasse. Und die wid ja auch geschlossen. Man muss also (wenn es der Hauptdialog ist) AfxGetMainWnd()->GetSafeHwnd() übergeben.


Anmelden zum Antworten