¿Cuál es el propósito de registrar una clase de ventana a través de WNDCLASSEX
y RegisterClassEx()
al crear una ventana en una aplicación API de Windows?¿Cuál es el propósito de registrar clases de ventana?
Respuesta
La separación de la ventana de atributos en CreateWindow() cosas y RegisterClass() cosas se hizo desde el principio para permitir la creación de manera uniforme comportándose ventanas. Los controles de diálogo (botones, cuadros de lista, etc.) son un excelente ejemplo: todos comparten una clase. Eso significa que comparten un procedimiento de ventana, es decir, comparten lógica de pintura, reacciones de entrada, mensajes personalizados, notificaciones, etc.
En el nivel de la aplicación, el caso más típico cuando tiene muchas ventanas de la misma clase es documentos dentro de una interfaz de múltiples documentos. A veces las personas introducen controles específicos de la aplicación. Entonces la distinción sirve su propósito.
El propósito principal es darle al sistema el derecho WndProc
para llamar cuando hay algo en la cola de mensajes para procesar.
Hay algunos indicadores, pero el punto principal es el anterior.
clases de ventana corresponden a tipos de widgets 'en la interfaz de usuario:
- botón
- casilla
- barra de desplazamiento
- cuadro combinado
- cuadro de lista
WndProc
es el único controlador del comportamiento del widge t.
De ahí la creación de mapas: Reproductor (tipo de control) ->wndclass
->WndProc
Entre otras cosas, también se usa para especificar algunos atributos de ventana como la cantidad de memoria de ventana adicional disponible para ['GetWindowLongPtr()'] (http://msdn.microsoft.com/en-us/library/windows/desktop/ ms633585.aspx). La cantidad de bytes de ventanas adicionales que utiliza una ventana se fija una vez que la haya creado. –
¿Existe alguna razón histórica para registrar la clase de ventana por separado? Teóricamente, el WndProc() se puede pasar como parte de CreateWindow(). ¿Cuál es el propósito del registro en el sistema de Windows? –
Existe algún mecanismo que le permitirá registrar clases de Windows globalmente, y usarlas en cualquier aplicación desde ese momento. De hecho, todos los controles de ventanas incorporados se registran de esa manera. No recuerdo detalles, pero puedes buscar 'Wndclass global' –
- 1. ¿Cuál es el propósito de las clases parciales?
- 2. ¿Cuál es el propósito de Membership.ValidateUser()
- 3. ¿Cuál es el propósito de precompiledApp.config?
- 4. ¿Cuál es el propósito de 'Class.forName ("MY_JDBC_DRIVER")'?
- 5. ¿Cuál es el propósito de Function.const?
- 6. ¿Cuál es el propósito de Mage_Core_Block_Template_Facade
- 7. ¿Cuál es el propósito de Anorm's Pk?
- 8. ¿Cuál es el propósito de :: en C#?
- 9. ¿cuál es el propósito de glClear (GL_DEPTH_BUFFER_BIT)
- 10. ¿Cuál es el propósito de 'var'?
- 11. ¿Cuál es el propósito de layout.xml?
- 12. ¿Cuál es el propósito de Active Records?
- 13. ¿Cuál es el propósito de git-mv?
- 14. ¿Cuál es el propósito de __cxa_pure_virtual?
- 15. ¿Cuál es el propósito de `qt_noop`
- 16. ¿Cuál es el propósito de requestWindowFeature()?
- 17. ¿Cuál es el propósito de Rake?
- 18. ¿Cuál es el propósito de JNDI
- 19. ¿Cuál es el propósito de IntentSender?
- 20. ¿Cuál es el propósito de String.IsInterned?
- 21. ¿Cuál es el propósito de utilizar NSOrderedSame?
- 22. ¿Cuál es el propósito de 'n = n'?
- 23. ¿Cuál es el propósito de Ext.require
- 24. ¿Cuál es el propósito de config.assets.precompile?
- 25. ¿Cuál es el propósito de Array.GetLowerBound (int)?
- 26. WPF: ¿Cuál es el propósito de App.xaml?
- 27. ¿cuál es el propósito de Thread.holdsLock (lock)?
- 28. ¿Cuál es el propósito del cargador de la clase Java?
- 29. ¿Cuál es el propósito del tamaño de la ventana de datos del canal de protocolo SSH?
- 30. ¿Cuál es el propósito de la clase TestExecution en MSTest?
Ayuda a pensar en términos de C++. Clase de ventana == Clase C++, CreateWindow == nuevo operador. –