1
부모 대화 상자 클래스에서 모덜리스 자식 대화 상자를 만들고 있는데, 부모 창의 클래스 데이터를 내가 만들려고하는 모든 자식 대화 상자 클래스와 공유하려고합니다. 내가 어떻게 할거 니?Modeless Child Dialog
부모 대화 상자 클래스에서 모덜리스 자식 대화 상자를 만들고 있는데, 부모 창의 클래스 데이터를 내가 만들려고하는 모든 자식 대화 상자 클래스와 공유하려고합니다. 내가 어떻게 할거 니?Modeless Child Dialog
하나 그것을하는 방법은 SetWindowLongPtr()을 사용하는 것입니다
SetWindowLongPtr(hwndParent, GWLP_USERDATA, (LONG_PTR)&parent_class);
이 부모 클래스의 주소로 부모 HWND에 USERDATA 필드를 설정합니다. 그런 다음 WM_INITDIALOG
처리기에서 부모 HWND에 GetWindowLongPtr()
을 호출하고 올바른 포인터 유형으로 다시 캐스팅하십시오.
그것을 할 수있는 더 나은 방법은 당신이 당신의 부모 클래스에 대한 포인터가 될 것입니다 당신이 dwInitParam
필드에 전달하는 값을 얻을 것이다 CreateDialogParam()를 사용하고 WM_INITDIALOG
핸들러에하는 것입니다.
클래스 데이터가 의미하는 것을 자세히 설명 할 수 있습니까? WindowClass 또는 부모를 구현하는 클래스에 대한 포인터? 자식 대화 상자를 만드는 방법 (API 호출은 무엇입니까?) –
부모 클래스의 함수에 자식 클래스로 접근하고 CreateDialog API를 사용하는 부모 클래스 내부에 자식 클래스의 인스턴스를 생성하여 자식 대화 상자를 만들고 싶습니다. – Kevin